我有一个 Rails 3.2 项目,它是一个 git repo,在vendor/autotest-new
目录中我有一个 git 子模块。
我想使用 Thor 自动执行一些操作。例如我需要
cucumber -d -f json > test.json
在 git 子模块中执行。
手动它工作正常,但是当我运行 thor 任务时,它会引发错误:
/home/user/.rvm/gems/ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/rubygems_integration.rb:214:in `block in replace_gem': cucumber is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
from /home/user/.rvm/gems/ruby-2.0.0-p247@rails32/bin/cucumber:22:in `<main>'
from /home/user/.rvm/gems/ruby-2.0.0-p247@rails32/bin/ruby_noexec_wrapper:14:in `eval'
from /home/user/.rvm/gems/ruby-2.0.0-p247@rails32/bin/ruby_noexec_wrapper:14:in `<main>'
我已经bundle install
在子模块中运行了。
雷神任务是:
class DB < Thor
include Thor::Actions
desc 'test_task', "test task"
def test_task
Dir.chdir("vendor/autotest-new") do
puts `bundle exec cucumber -d -f json > test.json`
end
end
end
我也试过
run "bundle exec cucumber -d -f json > test.json"
system "bundle exec cucumber -d -f json > test.json"
但这没有帮助。