RailsのRakeタスク作成〜RSpecでのテストまでの流れをまとめました。
できるだけシンプルにまとめたので、Rakeタスクの作成にはじめてトライされる方はぜひご一読ください。
02/13 22:10全体的に説明書きを書き直し
😼 Rakeタスクファイルの作成
次のコマンドを実行すると、Rakeタスク用のファイルがlib/tasks
の下に作成されます。
(reports
の部分は任意の名前に変更してください)
rails g task reports |
上で生成されたlib/tasks/reports.Rake
に処理を記述。
namespace :reports do |
ここまで完了するとRakeタスクの中にreports:generate
が追加されます。
rake -vT |
次のコマンドで、作成したreports:generate
のRakeタスクを実行できます。
rake reports:generate |
🏀 RakeタスクのRSpecを作成
Rakeタスクのテストですが、@netwillnetさんのgem『Rspec で rake タスクをテストする用の gem を作った』で詳解されているgem『rake_shared_context』を使う方法を書いておきます。
この方法は、thoughtbotさんのブログに書かれていたrakeのテスト方法をgem化したものだそうです。こちらも読んでおくと捗ります!
まずはGemfileに以下を追加して、ターミナルでbundle install
を実行。
gem 'rake' |
spec/lib/tasks/reports_rake_spec.rb
を作成して、テストを記述。
require 'spec_helper' |
かなり簡単にRakeタスクのテストができちゃいます!
🎳 参考リンク
🐯 変更来歴
12/12/05 22:00 gem ‘Rake’インストールを追加
12/12/11 12:55 taskのサンプルコード内にコメントを追記
12/12/17 10:45コード内の注意書きを追記
13/12/31 16:20 Rails 4 x Ruby 2.1環境で動作確認
14/02/13 21:20全体的に説明書きを書き直し