【发布时间】:2017-10-17 14:51:54
【问题描述】:
我在 Rails 4 上运行多个集成测试(现在在 Rails 5 中称为系统测试)时遇到困难。
环境:在 Puma 服务器上运行的 Rails 4 / Minitest / Capybara / Poltergeist。
-
当我运行一个创建新记录的测试时,每次都有效。
RAILS_ENV="test" ruby -I test test/integration/requests_test.rb -n /create_new/ -
当我运行整个测试集时,上述测试每次都创建失败,因为记录已经存在。
RAILS_ENV="test" ruby -I test test/integration/requests_test.rb
我通过在开始时添加 puts Request.all.collect(&:name) 来确认这一点 - 运行组时,已在数据库中创建记录。
这是核心问题 - 数据库并不是每次测试都可靠地更新。 (对于我的单元测试和功能测试,无论是分组还是个人,它都是新鲜的。)我如何确保我的集成测试每次都以全新的方式开始?
如果有帮助,上面的命令似乎在开发模式下运行 Puma,即使我在 test_helper.rb 中指定了 ENV['RAILS_ENV'] = 'test'。
【问题讨论】:
标签: ruby-on-rails-4 capybara integration-testing puma