为什么 selenium 不在我的应用程序控制器中运行 before_filters ?
我有一个子域 Rails 3.0 应用程序,我正在尝试使用 Cucumber/capybara/selenium 进行测试。我使用子域在应用程序控制器的 before_filter 中设置当前站点。
我所有的测试都工作正常,直到我使用 @javascript 标签。我使用 @javascript 运行的测试不运行 before_filter ,因此当前站点永远不会被设置。页面无法加载并且测试失败。
当我在适当的步骤中使用 save_and_open_page 时,这些相同的测试按预期工作并生成预期的页面。
有人知道为什么我的 before_filter 没有在硒下运行吗?
I've got a subdomained rails 3.0 app I'm trying to test with cucumber/capybara/selenium. I use the subdomain to set the current site in a before_filter in the application controller.
All my tests work fine, until I use the @javascript tag. The tests I run with @javascript don't run the before_filter and so the current site never gets set. The page doesn't load and the tests fail.
These same tests work as intended and produce the expected pages when I use save_and_open_page in the appropriate steps.
Anyone got any ideas as to why my before_filter isn't running under selenium?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我对过滤器没有运行的评估是不正确的。我正在使用 put 语句进行调试。在正常的黄瓜测试中,这些会转到您运行黄瓜的控制台窗口。因为使用 @javascript 运行的测试实际上启动了应用程序,所以调试语句被发送到一些看不见的输出。通过用 RAILS_DEFAULT_LOGGER.error 替换 put 语句并跟踪日志文件,我能够密切关注正在发生的情况。
My assessment that the filter wasn't running was incorrect. I was using puts statements to debug. In normal cucumber tests these go to the console window you run cucumber from. Because tests run with @javascript actually start up the application, the debug statements were getting sent to some unseen output. I was able to keep an eye on what was going on by replacing the puts statements with RAILS_DEFAULT_LOGGER.error and tailing the log file.