我有一个Rails应用程序,带有一些初始化代码,当应用程序在开发模式下运行时必须执行这些代码。但是,运行测试时不得执行此初始化程序代码。
我已经建立了
$ rake test
导致应用程序在开发模式下运行,该模式调用初始化程序代码,因此会破坏我的测试。这显然是预期的行为(参见:https://github.com/rails/rails/issues/9801)。
在开发模式下启动应用程序时运行Rails应用程序测试的正确命令是什么?
答案 0 :(得分:1)
您的test_helper.rb文件是否与default类似?它应该从:
开始ENV["RAILS_ENV"] = "test"
答案 1 :(得分:0)
尝试使用显式环境运行rake任务:
rake test:units RAILS_ENV=test
如果您没有指定环境,根据我的经验,假定开发。虽然测试数据库仍然会将夹具数据插入其中,但开发环境中的内容仍会因某种原因被引用。
答案 2 :(得分:0)
你需要在test_helper.rb文件的开头写一行
Rails.env = "test"
你不能使用
ENV["RAILS_ENV"] = "test"
因为它无法清除从Rails.env调用返回的缓存值。