ruby-on-rails - 在使用 Selenium 运行 Cucumber 之前,我是否需要运行 Webrick?

标签 ruby-on-rails sqlite selenium cucumber capybara

如果我使用带有 selenium web 驱动程序的 cucumber/capybara 进行测试,是否需要在执行 cucumber 之前在单独的终端中打开 rails 服务器?

(目前我在服务器打开的情况下运行它,但我从 sqlite 收到“数据库已锁定”错误,我认为这是 cucumber 和 webrick 冲突)

最佳答案

您不需要一个事件的 Rails 服务器来运行 Cucumber 测试,并且拥有一个正在运行的服务器(Webrick、Mongrel 等)应该不会影响您的数据库,除非您使用相同的数据库进行测试和开发。测试套件启动他们自己的 rails 副本,并且应该使用“AppName-Test”(默认情况下)数据库进行测试。

数据库被锁定,是在第一次测试时发生,还是在稍后的测试中发生?如果它稍后在测试中,那么当您进入下一个测试时,您可能有一个更大的数据库事务正在进行中。如果您认为是这种情况,请在第一次测试结束时抛出“sleep 30”以检查...给 DB 一些时间冷却。如果解决了这个问题,请查看代码中是否存在运行异常长的数据库事务的任何内容。

增强测试的好方法是:
https://github.com/bmabey/database_cleaner

它应该有助于终止任何数据库测试交互。希望这可以使您走上正确的道路。

关于ruby-on-rails - 在使用 Selenium 运行 Cucumber 之前,我是否需要运行 Webrick?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8021764/

相关文章:

Python pysqlite 不接受我的 qmark 参数化

ruby-on-rails - Rails 3.x 中 CAS 服务器的设置问题

ruby-on-rails - Ruby on Rails 3 - 为每个请求重新加载 lib 目录

jquery - 在每个 Turbolinks 页面中使用 jQuery 的委托(delegate)事件 on() :load

linux - Linux 64 位上的 SQLITE_NOMEM 错误

selenium - 如何基于 Protractor 的相对值构建 xpath/css-selector

jquery - 如何在单独的文件中查看此脚本?

sqlite - 玩框架 H2 db evolutions 与 sqlite/mysql 兼容?

java - 为什么在 Chrome 浏览器中进行可视化验证时,Selenium 不打开点击的链接?

cookies - 如何在 Selenium 中的 open() 之前创建 cookie