Buildkite Test Analytics와 테스트 통합

Buildkite는 이번 달에 Test Analytics 📈라는 새로운 기능을 도입했으며 이 주제에 대한 SEO에서 높은 순위를 차지하기 위해 제가 어떻게 했는지에 대한 올바른 기사에 있습니다(이미 Buildkite에 액세스할 수 있다는 점을 고려하면).

약간의 컨텍스트(아무도 신경쓰지 않는), 방금 우리가 물건을 추적하기 시작한 스케일업에 합류했고 당연히 배송 수명 주기의 품질(또는 내 존재의 요점은 무엇입니까 😂)을 포함합니다. 개인적으로 확인하고 싶었던 지표 중 하나는 테스트가 얼마나 예측 가능하고 신뢰할 수 있는지입니다. 테스트를 수행해야 한다는 압력이 있고 실패한 테스트의 양이 후속 테스트를 초과할 때 테스트를 무시하는 경향이 있습니다(특히 정상이 되는 Slack 경고에서). 이는 품질 엔지니어로서 용납할 수 없는 일이며 면밀히 모니터링해야 하는 일입니다.


"측정하지 않는 것은 개선할 수 없습니다."— 피터 드러커

jest 전면 단위 테스트의 경우 buildkite-test-collector이라는 npm 패키지를 설치하기만 하면 되는 (분명히 소스 코드 저장소에 포함) 쉽게 사용할 수 있는 통합기가 있습니다. ) 구성 파일에 보고자를 포함합니다(예: jest.config.js ):

reporters: [
  'default',
  'buildkite-test-collector/jest/reporter'
],
testLocationInResults: true




당사cypress 종단 간 테스트의 경우 몇 단계가 더 필요하므로 조금 까다롭습니다. 기본값junit reporter을 사용하고 구성 파일에 리포터를 포함해야 합니다(예: Cypress 10 이상의 경우 cypress.json 또는 cypress.config.ts).

  "reporter": "junit",
  "reporterOptions": {
    "mochaFile": "results/junit-[hash].xml",
    "toConsole": true
  }


완료되면 테스트 또는 빌드 파이프라인(또는 테스트를 실행하는 모든 위치) > 빌드 단계(또는 pipeline.yml ) 및 import the JUnit XML file 로 이동해야 합니다. 나만큼 게으르기 때문에(일부는 똑똑하다고 합니다 😎) 이 경우에는 Test collector plugin을 사용했습니다.

steps:
  - label: '🧪 Run cypress tests'
    commands: 'npx cypress run --record --parallel --ci-build-id $BUILDKITE_BUILD_NUMBER'
    plugins: # pass details to Test Analytics
      - test-collector#v1.0.0:
          files: 'results/junit-*.xml'
          format: 'junit'
    artifact_paths:
      - 'results/**/*'


구성이 완료되면 파이프라인의 빌드 단계에 BUILDKITE_ANALYTICS_TOKEN 값 또는 pipeline.yml 값을 포함합니다.


토큰이 설정되면 파이프라인을 실행하면 마법이 일어납니다! 🪄


참고: 테스트 요약이 단위 테스트의 기본 테스트 스위트 페이지에 포함되지 않은 이유는 확실하지 않습니다(Buildkite Gods가 우리를 도울 수 있으며 이 글을 업데이트할 것입니다).

특정 테스트 모음을 클릭하면 "악마(실패한 테스트가 많은 경우)가 세부 정보에 있습니다"👿


이것은 Cypress dashboards의 좋은 대안이기도 하지만 이미 Buildkite를 구독하고 있다면 무료입니다.

좋은 웹페이지 즐겨찾기