我想编写 rake 任务来自定义测试。例如,为了运行单元测试,我使用以下代码创建了一个文件并将其保存为 lib/tasks/test.rake:
task :do_unit_tests do
cd #{Rails.root}
rake test:units
end
运行rake do_unit_tests
会抛出错误:无法将哈希转换为字符串
。
使用 Rails 3.0.7 并使用内置单元测试框架。
谢谢。
最佳答案
无需cd
。您可以简单地...
task :do_unit_tests do
Rake::Task['test:units'].invoke
end
但是如果您确实想要 cd
,这就是调用 shell 指令的方式:
task :do_unit_tests do
sh "cd #{Rails.root}"
Rake::Task['test:units'].invoke
end
事实上,还有一个更短的版本。 cd
指令有一个特殊的别名 Chris在另一个答案中提到,所以你可以......
task :do_unit_tests do
cd Rails.root
Rake::Task['test:units'].invoke
end
如果你想更进一步,我推荐Jason Seifer's Rake Tutorial和 Martin Fowler's Using the Rake Build Language文章。两者都很棒。
关于ruby-on-rails - 如何编写一个任务来在 Rails 3 中运行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7376474/