Rake 작업 테스트

Rake 작업을 테스트하는 것을 조금 더 쉽게 만들기 위해:

  • RSpec의 메타데이터 태그 type: :task를 사용하거나
  • 스펙을 spec/tasks 또는 ee/spec/tasks에 배치합니다.

이렇게 함으로써 RakeHelpers가 포함되어 실행 가능한 작업을 실행하는 run_rake_task(<task>) 메소드를 노출합니다.

모든 사용 가능한 메소드를 확인하려면 spec/support/helpers/rake_helpers.rb를 참조하세요.

$stdout:silence_stdout를 추가하여 리디렉션할 수 있습니다.

예시:

require 'spec_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

테스트 문서로 돌아가기