InfoGrab Docs

빠른 실패 테스트

요약

빠른 실패 테스트는 나머지 스위트가 실행되기 전에 머지 리퀘스트 변경 사항과 가장 관련 있는 테스트 spec을 먼저 실행합니다. RSpec을 사용하는 Ruby on Rails 프로젝트의 경우 Verify/FailFast CI/CD 템플릿이 관련 spec만 선택하여 실행합니다.

빠른 실패 테스트는 나머지 스위트가 실행되기 전에 머지 리퀘스트 변경 사항과 가장 관련 있는 테스트 spec을 먼저 실행합니다. 해당 spec이 실패하면 파이프라인은 시간과 컴퓨팅 리소스를 절약하기 위해 즉시 중단됩니다.

RSpec을 사용하는 Ruby on Rails 프로젝트의 경우 Verify/FailFast CI/CD 템플릿이 관련 spec만 선택하여 실행합니다. 이 템플릿은 변경된 파일을 관련 spec 파일에 매핑하는 test_file_finder (tff) gem을 사용합니다.

기본적으로 템플릿은 다른 모든 파이프라인 스테이지보다 먼저 .pre 스테이지에서 실행됩니다.

빠른 실패 테스트 구성#

빠른 실패 테스트를 구성하여 전체 테스트 스위트가 실행되기 전에 머지 리퀘스트 변경 사항에 대한 더 빠른 피드백을 받으세요.

사전 요구 사항:

빠른 실패 테스트를 구성하려면:

  • 머지 리퀘스트 파이프라인에서 전체 스위트를 실행하는 RSpec job을 추가합니다:

    rspec-complete:
      stage: test
      rules:
        - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      script:
        - bundle install
        - bundle exec rspec
    
  • CI/CD 구성에 Verify/FailFast 템플릿을 포함합니다:

    include:
      - template: Verify/FailFast.gitlab-ci.yml
    
  • 선택 사항. 다른 Docker 이미지를 사용하려면 CI/CD 구성 파일의 rspec-rails-modified-path-specs job에 이미지를 설정합니다:

    include:
      - template: Verify/FailFast.gitlab-ci.yml
    
    rspec-rails-modified-path-specs:
      image: custom-docker-image-with-ruby
    

빠른 실패 테스트 결과#

다음 예시는 10개 모델 각각에 100개의 spec으로 구성된 스위트(총 1000개 spec)를 가정합니다.

변경된 파일 rspec-rails-modified-path-specs rspec-complete
Ruby 파일 없음 실행하지 않음 전체 1000개 spec 실행
app/models/example.rb (모든 spec 통과) example.rb에 대한 100개 spec 실행 전체 1000개 spec 실행
app/models/example.rb (spec 실패) example.rb에 대한 100개 spec 실행 건너뜀

빠른 실패 테스트

Tier: Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

빠른 실패 테스트는 나머지 스위트가 실행되기 전에 머지 리퀘스트 변경 사항과 가장 관련 있는 테스트 spec을 먼저 실행합니다. RSpec을 사용하는 Ruby on Rails 프로젝트의 경우 Verify/FailFast CI/CD 템플릿이 관련 spec만 선택하여 실행합니다.

빠른 실패 테스트는 나머지 스위트가 실행되기 전에 머지 리퀘스트 변경 사항과 가장 관련 있는 테스트 spec을 먼저 실행합니다. 해당 spec이 실패하면 파이프라인은 시간과 컴퓨팅 리소스를 절약하기 위해 즉시 중단됩니다.

RSpec을 사용하는 Ruby on Rails 프로젝트의 경우 Verify/FailFast CI/CD 템플릿이 관련 spec만 선택하여 실행합니다. 이 템플릿은 변경된 파일을 관련 spec 파일에 매핑하는 test_file_finder (tff) gem을 사용합니다.

기본적으로 템플릿은 다른 모든 파이프라인 스테이지보다 먼저 .pre 스테이지에서 실행됩니다.

빠른 실패 테스트 구성#

빠른 실패 테스트를 구성하여 전체 테스트 스위트가 실행되기 전에 머지 리퀘스트 변경 사항에 대한 더 빠른 피드백을 받으세요.

사전 요구 사항:

빠른 실패 테스트를 구성하려면:

  • 머지 리퀘스트 파이프라인에서 전체 스위트를 실행하는 RSpec job을 추가합니다:

    rspec-complete:
      stage: test
      rules:
        - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      script:
        - bundle install
        - bundle exec rspec
    
  • CI/CD 구성에 Verify/FailFast 템플릿을 포함합니다:

    include:
      - template: Verify/FailFast.gitlab-ci.yml
    
  • 선택 사항. 다른 Docker 이미지를 사용하려면 CI/CD 구성 파일의 rspec-rails-modified-path-specs job에 이미지를 설정합니다:

    include:
      - template: Verify/FailFast.gitlab-ci.yml
    
    rspec-rails-modified-path-specs:
      image: custom-docker-image-with-ruby
    

빠른 실패 테스트 결과#

다음 예시는 10개 모델 각각에 100개의 spec으로 구성된 스위트(총 1000개 spec)를 가정합니다.

변경된 파일 rspec-rails-modified-path-specs rspec-complete
Ruby 파일 없음 실행하지 않음 전체 1000개 spec 실행
app/models/example.rb (모든 spec 통과) example.rb에 대한 100개 spec 실행 전체 1000개 spec 실행
app/models/example.rb (spec 실패) example.rb에 대한 100개 spec 실행 건너뜀