Rakeタスクのテスト

Rakeタスクのテストを少し簡単にするために、標準のSpecヘルパーの代わりに含めることができるヘルパーがあります。require 'spec_helper' の代わりにrequire 'rake_helper' を使ってください。このヘルパーにはspec_helper が含まれており、Rake タスクのテストを簡単にするための他のいくつかの設定も含まれています。

最低限、Rake ヘルパーが必要であれば、ランタイムタスクヘルパーが含まれ、RakeHelpers Spec サポートモジュールが含まれます。

RakeHelpers モジュールはrun_rake_task(<task>) メソッドを公開し、タスクの実行を簡単にします。利用可能なすべてのメソッドについては、spec/support/helpers/rake_helpers.rb を参照してください。

$stdout:silence_stdout を追加することでリダイレクトできます。

使用例:

require 'rake_helper'

describe 'gitlab:shell rake tasks', :silence_stdout do
  before do
    Rake.application.rake_require 'tasks/gitlab/shell'

    stub_warn_user_is_not_gitlab
  end

 describe 'install task' do
    it 'invokes create_hooks task' do
      expect(Rake::Task['gitlab:shell:create_hooks']).to receive(:invoke)

      run_rake_task('gitlab:shell:install')
    end
  end
end

テストのドキュメントに戻る