如何修改我的zeus.json文件以在我正在与我的应用程序一起开发的引擎中运行rspec测试?
我的Rails应用程序看起来像这样:
/config
/engines
/engine <-- this is the engine I'm developing inside the parent app
/spec <-- here are the rspec tests
/custom_plan.rb
/zeus.json
通常情况下,我cd
进入 engines / engine 并运行rspec
来运行引擎测试(它有一个运行的虚拟应用程序)。
在顶层目录中运行zeus init
会创建 zeus.json 和 custom_plan.rb :
{
"command": "ruby -rubygems -r./custom_plan -eZeus.go",
"plan": {
"boot": {
"default_bundle": {
"development_environment": {
"prerake": {"rake": []},
"runner": ["r"],
"console": ["c"],
"server": ["s"],
"generate": ["g"],
"destroy": ["d"],
"dbconsole": []
},
"test_environment": {
"test_helper": {"test": ["rspec", "testrb"]}
}
}
}
}
}
require 'zeus/rails'
class CustomPlan < Zeus::Rails
# def my_custom_command
# # see https://github.com/burke/zeus/blob/master/docs/ruby/modifying.md
# end
end
Zeus.plan = CustomPlan.new
然后当我运行zeus start
时,test_helper启动失败并带有
cannot load such file -- test_helper (LoadError)
我的猜测是因为我的规格目前位于 engines / engine / spec 中,并且父应用中没有“spec”文件夹。我希望能够更新我的custom_plan来运行这些测试。取而代之的是,我希望能够在引擎内部创建一个单独的计划和zeus.json,但是当我cd
进入引擎/引擎并运行zeus init时,它仍然会创建配置文件。应用程序的根目录,所以我不确定如何让zeus“进入”我的引擎。
帮助表示赞赏。
答案 0 :(得分:1)
您可以设置test_helper的路径。这是宙斯宝石中的一种方法:https://github.com/burke/zeus/blob/master/rubygem/lib/zeus/rails.rb#L185
我刚才有同样的错误升级到rspec 3并且找不到任何使用zeus和rspec 3的文档,所以我设置了zeus.json:
{
"command": "ruby -rubygems -r./custom_plan -eZeus.go",
"plan": {
"boot": {
"default_bundle": {
"development_environment": {
"prerake": {"rake": []},
"runner": ["r"],
"console": ["c"],
"server": ["s"],
"generate": ["g"],
"destroy": ["d"],
"dbconsole": []
},
"test_environment": {
"test_helper": {"spec": ["rspec"]}
}
}
}
}
}
和custom_plan.rb
require 'zeus/rails'
class CustomPlan < Zeus::Rails
def spec(argv=ARGV)
RSpec::Core::Runner.disable_autorun!
exit RSpec::Core::Runner.run(argv)
end
end
# set rails_helper for rspec 3
ENV['RAILS_TEST_HELPER'] = 'rails_helper'
Zeus.plan = CustomPlan.new
因此,您可以尝试将ENV['RAILS_TEST_HELPER']
设置为test_helper文件的路径。