- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
이 페이지는 CI Visibility 문제 해결에 도움이 되는 정보를 제공합니다. 추가적인 도움이 필요하시면 Datadog 지원팀에 문의하세요.
localhost:8126
에서 액세스 가능) 확인해야 합니다. 또는, 다른 호스트 이름이나 포트에서 액세스할 수 있는 경우 DD_AGENT_HOST
에 설정된 적절한 Agent 호스트 이름과 DD_TRACE_AGENT_PORT
환경 변수에 있는 적절한 포트를 사용하여 테스트를 실행해야 합니다. 트레이서에서 디버깅 모드를 활성화하여 Agent에 연결할 수 있는지 확인할 수 있습니다.datadog-ci
와 함께 JUnit 테스트 보고서를 업로드하고 있지만 일부 또는 모든 테스트가 누락됩니다.datadog-ci
CLI를 사용하여 JUnit 테스트 보고서 파일을 업로드하는 경우 테스트가 표시되지 않으면 보고서가 올바르지 않은 것으로 간주되어 테스트가 폐기될 수 있습니다.
다음과 같은 경우 JUnit 테스트 보고서가 올바르지 않습니다:
Test Runs 탭에 테스트 결과 데이터가 표시되지만 Test 탭에 표시되지 않으면 Git 메타데이터 (리포지토리, 커밋 또는 브랜치)가 누락되었을 수 있습니다. 이를 확인하려면 Test Runs 섹션에서 테스트 실행을 열고 git.repository_url
, git.commit.sha
또는 git.branch
가 없는지 확인합니다. 이러한 태그가 입력되지 않으면 Tests 섹션에 아무것도 표시되지 않습니다.
트레이서는 먼저 CI 공급자가 설정한 환경 변수가 있으면 이를 사용하여 Git 정보를 수집합니다. 지원되는 각 CI 공급자에 대해 트레이서가 읽으려는 환경 변수 목록은 컨테이너 내에서 테스트 실행을 참조하세요. 이렇게 하면 최소한 리포지토리, 커밋 해시 및 브랜치 정보가 입력됩니다.
그 다음, 로컬 .git
폴더가 있으면 git
명령을 실행하여 Git 메타데이터를 가져옵니다. 이렇게 하면 커밋 메시지, 작성자 및 커미터 정보를 포함한 모든 Git 메타데이터 필드가 채워집니다. .git
폴더가 있고 git
바이너리가 설치되어 있으며 $PATH
에 있는지 확인하세요. 이 정보는 이전 단계에서 발견되지 않은 속성을 입력하는 데 사용됩니다.
이전 단계에서 감지한 정보를 재정의하는 환경 변수를 사용하여 Git 정보를 수동으로 제공할 수도 있습니다.
Git 정보를 제공하기 위해 지원되는 환경 변수는 다음과 같습니다:
DD_GIT_REPOSITORY_URL
(필수)git@github.com:MyCompany/MyApp.git
, https://github.com/MyCompany/MyApp.git
DD_GIT_COMMIT_SHA
(필수)a18ebf361cc831f5535e58ec4fae04ffd98d8152
DD_GIT_BRANCH
develop
DD_GIT_TAG
1.0.1
DD_GIT_COMMIT_MESSAGE
Set release number
DD_GIT_COMMIT_AUTHOR_NAME
John Smith
DD_GIT_COMMIT_AUTHOR_EMAIL
john@example.com
DD_GIT_COMMIT_AUTHOR_DATE
2021-03-12T16:00:28Z
DD_GIT_COMMIT_COMMITTER_NAME
Jane Smith
DD_GIT_COMMIT_COMMITTER_EMAIL
jane@example.com
DD_GIT_COMMIT_COMMITTER_DATE
2021-03-12T16:00:28Z
CI 공급자 환경 변수가 발견되지 않으면 Git 메타데이터 없이 테스트 결과가 전송됩니다.
테스트 월 타임이 표시되지 않으면 CI 제공자 메타데이터가 누락되었을 수 있습니다. 이를 확인하려면 Test Runs 섹션에서 테스트 실행을 열고 ci.pipeline.id
, ci.pipeline.name
, ci.pipeline.number
또는 ci.job.url
태그가 누락되었는지 확인합니다. 이러한 태그가 입력되지 않으면 월 타임 열에 아무것도 표시되지 않습니다.
월 타임은 지정된 파이프라인에 대한 첫 번째 테스트 시작 시간과 마지막 테스트 종료 시간 사이의 시간 차이로 정의됩니다.
이 작업은 다음 알고리즘을 사용하여 수행됩니다:
ci.job.url
를 포함하는 경우 이 태그를 사용하여 해시를 계산합니다.ci.job.url
를 포함하지 않으면 ci.pipeline.id
+ci.pipeline.name
+ci.pipeline.number
를 사용하여 해시를 계산합니다.Ruby의 timecop이나 Python의 FreezeGun과 같이 시간에 따라 달라지는 코드를 테스트하기 위해 라이브러리를 사용하는 경우, 테스트 타임스탬프가 잘못되어 월 타임이 계산되었을 수 있습니다. 이 경우 테스트를 완료하기 전에 시간에 대한 수정 사항이 롤백되었는지 확인하세요.
테스트 상태 번호는 수집된 고유한 테스트를 기반으로 계산됩니다. 테스트의 고유성은 테스트의 스위트와 이름뿐만 아니라 테스트 파라미터 및 테스트 설정에 의해서도 정의됩니다.
숫자가 예상보다 낮으면 테스트 데이터를 수집하는 데 사용하는 라이브러리나 도구에서 테스트 파라미터 및/또는 일부 테스트 설정을 수집할 수 없습니다.
동일한 커밋에 대한 동일한 테스트를 다른 상태에서 여러 번 수집하는 경우 집계 결과는 아래 표의 알고리즘을 따릅니다:
테스트 상태 - 첫 번째 시도 | 테스트 상태 - 재시도 #1 | 결과 |
---|---|---|
Passed | Passed | Passed |
Passed | Failed | Passed |
Passed | Skipped | Passed |
Failed | Passed | Passed |
Failed | Failed | Failed |
Failed | Skipped | Failed |
Skipped | Passed | Passed |
Skipped | Failed | Failed |
Skipped | Skipped | Skipped |
기본 브랜치는 다음과 같은 제품의 일부 기능을 구동하는 데 사용됩니다:
테스트 페이지의 기본 브랜치 목록: 이 목록에는 기본 브랜치만 표시됩니다. 잘못된 기본 브랜치를 설정하면 기본 브랜치 목록에서 데이터가 누락되거나 잘못될 수 있습니다.
기본값이 아닌 브랜치의 월 타임 비교: Tests 페이지의 브랜치 보기에서 VS Default 열은 현재 브랜치의 월 타임과 기본 브랜치의 월 타임을 비교하여 계산됩니다.
새로운 비정상적 테스트: 현재 기본 브랜치에서 비정상으로 분류되지 않은 테스트입니다. 기본 브랜치가 제대로 설정되지 않은 경우 새로 감지된 비정상적 테스트 수가 잘못되었을 수 있습니다.
파이프라인 목록: 파이프라인 목록에는 기본 브랜치만 표시됩니다. 잘못된 기본 브랜치를 설정하면 파이프라인 목록에서 데이터가 누락되거나 잘못될 수 있습니다.
관리자 권한이 있는 경우 리포지토리 설정 페이지에서 업데이트할 수 있습니다.
logging.properties
파일을 생성하고 org.datadog.level = ALL
행을 추가하여 디버그 수준 로그를 실행할 수 있습니다.진행 중인 파이프라인에서 오는 불완전한 데이터를 클릭하면 “Pipeline not found” 메시지가 표시됩니다. 단계, 작업 또는 커스텀 명령에 대해 데이터가 점진적으로 수신됩니다. 파이프라인이 완료될 때까지 기다렸다가 다시 시도하세요.
Intelligent Test Runner는 과거 테스트 실행에 대한 코드 적용 범위 정보와 함께 커밋 기록을 분석하여 실행해야 하는 테스트와 안전하게 건너뛸 수 있는 테스트를 결정합니다. Intelligent Test Runner가 올바르게 작동하려면 최소한의 정보가 있어야 합니다:
git clone --depth=0
)를 포함하지 않는 git 클론을 덜 얕게 만드려고 하지만 이전 버전의 git에서는 작동하지 않을 수 있습니다. CI 작업에서 얕은 git 클론을 사용하는 경우 git clone --filter=blob:none
명령을 사용하여 부분적인 git 클론을 사용하도록 변경할 수 있습니다.이러한 제한으로 인해 Intelligent Test Runner를 처음 활성화할 때 건너뛴 테스트를 볼 수 없으며 코드 적용 범위가 자동으로 수집되므로 테스트 실행 시간이 평소보다 느릴 수 있습니다.
Intelligent Test Runner는 지난 한 달 동안의 커밋 기록과 테스트 코드 적용 범위 정보만 고려합니다. 또한 커밋이 이루어진 후 일주일 이상 지나 생성된 코드 적용 범위 정보는 고려하지 않습니다.
GitHub의 UI에서 포크를 동기화하면 생성된 동기화 커밋에 대해 모든 테스트가 실행된다는 제한이 있습니다.
Intelligent Test Runner는 코드 범위를 기반으로 테스트 영향 분석을 수행하여 특정 커밋 또는 커밋 세트의 영향을 받는 테스트를 결정합니다. 이 전략은 대부분의 테스트에 효과적이지만 Intelligent Test Runner가 실행해야 하는 테스트를 건너뛸 수 있는 알려진 시나리오가 있습니다:
이러한 경우를 포함하는 커밋을 작성하는 경우 Git 커밋 메시지의 아무 곳에나 ITR:NoSkip
(대소문자를 구분하지 않음)을 추가하여 Intelligent Test Runner에서 테스트 건너뛰기를 강제로 비활성화할 수 있습니다.
추가 유용한 문서, 링크 및 기사: