私が覚えていることから、ドキュメントでは、テスト環境では、rakeを実行しても(引数なしで)データベースが常にクリアされると指定されています。そのようなことを実現したいので、タスクを実行するかどうかは関係ありません。rakeを実行すると、常にRakeタスクが実行されます。これは可能ですか?これは、デフォルトのタスクが開始される場所ですか?
1077 次
1 に答える
2
rakefile
タスクを実行したいディレクトリにというファイルを作成します。このコードは、「rake」と入力するだけで my_default_task が実行されるようにします。
task :default => 'my_default_task'
task :my_default_task do
puts "Now I am doing the task that Tempus wants done when he/she types 'rake' in the console."
end
task :my_not_default_task do
puts "This isn't the default task."
end
ただし、入力rake my_not_default_task
した場合my_default_task
は実行されません。ここに関係なく実行したい場合は、次のことができます。
task :default => 'my_default_task'
task :my_default_task do
puts "This is the default task"
end
task :my_not_default_task do
puts "This isn't the default task."
end
Rake::Task['my_default_task'].invoke
rake my_not_default_task
このコードの最後の行により、他のタスクを呼び出した場合でも my_default_task が実行されることが保証されますmy_default_task
。
lib/tasks
編集: Rails を使用している場合は、上記のタスクをフォルダー内のファイルに拡張子.rake
.rake
于 2012-05-23T13:17:34.617 に答える