빠른 실패 테스트
빠른 실패 테스트 템플릿을 사용하여 코드 변경 사항에 대한 빠른 피드백을 받기 위해 관련 RSpec 테스트만 실행합니다.
테스트에 RSpec을 사용하는 애플리케이션의 경우 Verify/Failfast 템플릿을 사용하여 테스트 스위트의 하위 집합을 실행 할 수 있습니다. 이는 머지 리퀘스트의 변경 사항을 기반으로 합니다. 이 템플릿은 test_file_finder ( tff ) gem 을 사용합니다. 이 gem은 파일 목록을 입력으로 받아 해당 입력 파일과 관련된 spec(테스트) 파일 목록을 반환합니다. tff 는 Ruby on Rails 프로젝트를 위해 설계되었으므로 Verify/FailFast 템플릿은 Ruby 파일 변경이 감지될 때 실행되도록 구성되어 있습니다. 기본적으로 GitLab CI/CD 파이프라인의 .pre Stage 에서, 다른 모든 Stage보다 먼저 실행됩니다. 사용 사례 예시 # 빠른 실패 테스트는 프로젝트에 새 기능을 추가하고 새 자동화 테스트를 추가할 때 유용합니다. 프로젝트에는 완료하는 데 오랜 시간이 걸리는 수십만 개의 테스트가 있을 수 있습니다. 새 테스트가 통과할 것으로 예상되지만, 이를 확인하려면 모든 테스트가 완료될 때까지 기다려야 합니다. 병렬화를 사용하더라도 한 시간 이상 걸릴 수 있습니다. 빠른 실패 테스트는 파이프라인에서 더 빠른 피드백 루프를 제공합니다. 새 테스트가 통과하고 새 기능이 다른 테스트를 손상시키지 않았다는 것을 빠르게 알 수 있습니다. 사전 요구 사항 # 이 템플릿에는 다음이 필요합니다: RSpec으로 테스트하는 Rails 기반 프로젝트. CI/CD 구성: Ruby가 있는 Docker 이미지 사용. 머지 리퀘스트 파이프라인 사용 프로젝트 설정에서 병합 결과 파이프라인 활성화. Ruby가 있는 Docker 이미지. 템플릿은 기본적으로 image: ruby:2.6 을 사용하지만 재정의 할 수 있습니다. 빠른 RSpec 실패 구성 # 다음 일반 RSpec 구성을 시작점으로 사용할 수 있습니다. 모든 프로젝트 gem을 설치하고 머지 리퀘스트 파이프라인에서만 rspec 을 실행합니다. rspec-complete: stage: test rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" script: - bundle install - bundle exec rspec 전체 스위트 대신 가장 관련 있는 spec을 먼저 실행하려면 CI/CD 구성에 다음을 추가하여 템플릿을 include 합니다: include: - template: Verify/FailFast.gitlab-ci.yml job을 사용자 지정하려면 특정 옵션을 설정하여 템플릿을 재정의할 수 있습니다. 예를 들어, 기본 Docker 이미지를 재정의하려면: include: - template: Verify/FailFast.gitlab-ci.yml rspec-rails-modified-path-specs: image: custom-docker-image-with-ruby 테스트 로드 예시 # 설명을 위해 Rails 앱 spec 스위트가 10개 모델 각각에 100개의 spec으로 구성되어 있다고 가정합니다.
