6
# lib/tasks/test.rake
task :hello do
  puts 'hello'
end

$ rake app:hello

タスクを実行するには、プレフィックスとして「app:」を付ける必要があり、ダミーアプリのコンテキストで実行されます。また、ホストアプリケーション(つまり、親Railsアプリでプラグインとして使用される場合)にも公開されrake helloます。

Rails環境を必要とせず、コマンドを実行するrakeタスクを実行したいのですが、ダミーのアプリルートではなく、エンジンルートから実行されます。

4

2 に答える 2

4

この質問に対するより良い回答が必要ですが、次のようにエンジンの Rakefile にタスクを追加できることがわかりました (./Rakefile は仕様/ダミー アプリケーションにはありません)。

task :my_task do
  puts "hi!"
end

task :default => [:spec, :my_task]

タスクを別のファイルに保存したいのですが、少なくともこれで先に進むことができます。私の場合、ダミー アプリケーションで Konacha JavaScript テストを実行したいので、Rakefile は次のようになります。

task :spec_javascript do
  exec 'cd spec/dummy && rake konacha:run' # exec passes command return value up stack!
end

task :default => [:spec, :spec_javascript]
于 2012-10-05T00:30:52.590 に答える