【发布时间】:2010-10-29 20:26:24
【问题描述】:
我在一个 Rakefile 中有一系列 rake 任务,我想在我的规范等中对其进行测试。每个任务都以以下形式定义:
task :do_somthing => :environment do
# Do something with the database here
end
:environment 任务设置 ActiveRecord/DataMapper 数据库连接和类的位置。我没有将它用作 Rails 的一部分,但我有一系列测试,我喜欢将它们作为 BDD 的一部分运行。
这个 sn-p 说明了我是如何尝试测试 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 测试与我的测试数据库交互,而不是生产?我已经尝试在帮助文件中重新定义任务,但这不起作用。
任何对解决方案的帮助都会很棒,因为过去一周我一直坚持这一点。
【问题讨论】: