我在 Rakefile 中有一系列 rake 任务,我想将其作为我的规范等的一部分进行测试。每个任务都以以下形式定义:
task :do_somthing => :environment do
# Do something with the database here
end
:environment 任务设置 ActiveRecord/DataMapper 数据库连接和类的位置。我没有将它用作 Rails 的一部分,但我有一系列测试,我喜欢将它们作为 BDD 的一部分运行。
此片段说明了我如何尝试测试 rake 任务。
def setup
@rake = Rake::Application.new
Rake.application = @rake
load File.dirname(__FILE__) + '/../../tasks/do_something.rake'
end
should "import data" do
@rake["do_something"].invoke
assert something_in_the_database
end
所以我的帮助请求 - 是否可以覆盖我的 test_helper.rb 文件中的 :environment 任务,以便我的 rake 测试与我的测试数据库交互,而不是生产?我尝试在帮助文件中重新定义任务,但这不起作用。
对解决方案的任何帮助都会很棒,因为过去一周我一直坚持这一点。