Railsのジェネレータで生成したタスクのrbファイルを見ているとRakeタスクを定義するところで少し疑問に思ったことがあった。 railsのジェネレーターで以下のとおりにタスクを作成する。 % rails generate TASK_FILE_NAME TASK_NAME 例) % rails generate hoge test 例)のように実行すると lib/tasks/hoge.rb ができて testというタスクが定義される namespace :hoge do desc "TODO" task test: :environment do end end タスク定義のところで「:environment」 という引数が渡されているが、どういうこのことなのかを調べてみた。 「RailsでオリジナルRakeタスク作成からRSpecテストまで」 の記事の中に以下の一文があったので実際に試
Rake タスクをテストするとき、テストコード内で #invoke で呼び出すと、二回目の実行時に Rake タスクが実行されません。 describe 'hoge' do before(:all) do @rake = Rake::Application.new Rake.application = @rake Rake.application.rake_require("hoge", ["#{Rails.root}/lib/tasks"]) Rake::Task.define_task(:environment) end describe "rake hoge" do context "Rake タスク実行後" do before do @rake["book:dismissed_suppliers"].invoke end it "hoge 一回目" do # Rake タスクが実行
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く