在运行Culen与Selenium之前,我是否需要运行Webrick?

时间:2011-11-05 17:06:36

标签: ruby-on-rails sqlite selenium cucumber capybara

如果我使用带有硒网络驱动程序的黄瓜/水豚进行测试,我是否需要在执行黄瓜之前在单独的终端中打开rails服务器?

(目前我在服务器打开的情况下运行它,但我从sqlite获取'数据库被锁定'错误,我认为这是黄瓜和webrick冲突)

1 个答案:

答案 0 :(得分:2)

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

数据库已锁定,是在第一次测试时发生的,还是稍后在测试中发生的?如果它稍后进行测试,那么当您进入下一个测试时,您可能会有一个更大的数据库事务正在进行中。如果您认为是这种情况,请在第一次测试结束时抛出“睡眠30”以检查......给DB一些时间冷静下来。如果修复它,请在代码中查找运行异常长数据库事务的任何内容。

增强测试的好宝石将是: https://github.com/bmabey/database_cleaner

它应该有助于杀死任何数据库测试交互。希望这可以让你走上正确的道路。