- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
코드 검사는 모듈 또는 세션이 실행하는 총 코드 검사 백분율의 측정값입니다.
테스트 가시성이 내 언어에 이미 설정되어 있는지 확인합니다.
dd-trace>=3.20.0
.jest>=24.8.0
로 실행할 때만 jest-circus
입니다.mocha>=5.2.0
.cucumber-js>=7.0.0
.Istanbul
코드 검사만 지원됩니다.이스탄불(Istanbul)로 테스트를 계측하면 Datadog 트레이서는 테스트 세션에 대해 test.code_coverage.lines_pct
태그 아래에 코드 검사 결과를 자동으로 보고합니다. 이스탄불로 테스트를 계측하려면 nyc
를 사용할 수 있습니다.
테스트 세션에서 모든 코드 검사를 보고하려면 다음 단계를 따르세요.
nyc
설치:npm install --save-dev nyc
nyc
로 래핑합니다.{
"scripts": {
"test": "mocha",
"coverage": "nyc npm run test"
}
}
nyc
를 설치하지 않아도 됩니다. --coverage
를 전달하기만 하면 됩니다.{
"scripts": {
"coverage": "jest --coverage"
}
}
coverage
명령으로 테스트를 실행합니다.NODE_OPTIONS="-r dd-trace/ci/init" DD_ENV=ci DD_SERVICE=my-javascript-service npm run coverage
dd-trace>=2.31.0
.코드 검사를 사용할 수 있는 경우, Datadog 트레이서(2.31.0 버전 이상)가 테스트 세션 동안 test.code_coverage.lines_pct
태그 아래에 이를 보고합니다.
코드 검사를 컴퓨팅하는 데 Coverlet를 사용하는 경우, dd-trace
실행 시 DD_CIVISIBILITY_EXTERNAL_CODE_COVERAGE_PATH
환경 변수에서 보고서 파일로의 경로를 지정합니다. 보고서 파일은 OpenCover 또는 Cobertura 형식이어야 합니다. 대신, DD_CIVISIBILITY_CODE_COVERAGE_ENABLED=true
환경 변수를 사용해 Datadog 트레이서의 내장 코드 검사 계산을 활성화할 수 있습니다.
Datadog 트레이서의 기본 제공 코드 검사는 .runsettings
파일로 Coverlet
및 VS Code Coverage
옵션을 모두 지원합니다.
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="DatadogCoverage">
<Configuration>
<!-- Datadog 코드 검사 설정 -->
...
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
옵션 | 요약 |
---|---|
ExcludeByAttribute | 코드 검사에서 속성이 추가된 메서드, 클래스 또는 어셈블리를 제외합니다. |
ExcludeByFile | 코드 검사에서 특정 소스 파일을 제외합니다. |
제외 | 필터 정규 표현식을 사용하여 코드 검사 분석에서 제외합니다. |
System.Diagnostics.CodeAnalysis
네임스페이스에 있는 ExcludeFromCodeCoverage
속성을 생성 및 적용하여 메서드, 전체 클래스 또는 어셈블리를 코드 검사에서 제외합니다.
ExcludeByAttribute
속성과 속성의 짧은 이름(네임스페이스을 제외한 유형 이름)이 있는 추가 속성은 제외합니다.
ExcludeByFile
속성을 사용하여 코드 검사에서 특정 소스 파일을 제외합니다.
*
)가 있는 파일 경로 또는 디렉토리 경로를 사용합니다(예: dir1/*.cs
).다음 구문의 필터 정규 표현식을 사용하여 필터링으로 제외되는 항목을 세밀하게 제어할 수 있습니다.
[<ASSEMBLY_FILTER>]<TYPE_FILTER>
와일드카드가 지원됩니다.
*
=> 0개 이상의 문자와 일치?
=> 접두어 문자는 옵션입니다.예시:
[*]*
=> 전체 어셈블리의 모든 유형을 제외합니다(계측되지 않음).[coverlet.*]Coverlet.Core.Coverage
=> coverlet.*
와 일치하는 어셈블리(예: coverlet.core
)에 속하는 Coverlet.Core
네임스페이스에서 Coverage
클래스를 제외합니다.[*]Coverlet.Core.Instrumentation.*
=> 전체 어셈블리에서 Coverlet.Core.Instrumentation
네임스페이스에 속하는 모든 유형을 제외합니다.[coverlet.*.tests?]*
=> coverlet.
로 시작하고 .test
또는 .tests
로 끝나는 전체 어셈블리의 모든 유형을 제외합니다( ?
은 s
옵션을 생성).[coverlet.*]*,[*]Coverlet.Core*\
=> coverlet.*
와 일치하는 어셈블리를 제외하고, 어셈블리에서 Coverlet.Core
네임스페이스에 속하는 모든 유형을 제외합니다.자세한 내용을 확인하려면 Microsoft 설명서의 코드 검사 분석 사용자 지정을 참조하세요.
옵션 | 요약 |
---|---|
Attributes\Exclude | 코드 검사에서 속성이 추가된 메서드, 클래스 또는 어셈블리를 제외합니다. |
Sources\Exclude | 코드 검사에서 특정 소스 파일을 제외합니다. |
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="DatadogCoverage">
<Configuration>
<!-- Coverlet 설정 -->
<ExcludeByAttribute>CompilerGeneratedAttribute</ExcludeByAttribute>
<ExcludeByFile>**/Fibonorial.cs</ExcludeByFile>
<Exclude>[myproject.*.tests?]*</Exclude>
<!-- VS 코드 검사 설정 -->
<CodeCoverage>
<Attributes>
<Exclude>
<Attribute>^System\.ObsoleteAttribute$</Attribute>
</Exclude>
</Attributes>
<Sources>
<Exclude>
<Source>^MyFile\.cs$</Source>
</Exclude>
</Sources>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
dd-trace-java >= 1.24.2
.코드 검사를 사용할 수 있는 경우, Datadog 트레이서가 테스트 세션 동안 test.code_coverage.lines_pct
태그 아래에 이를 보고합니다.
Jacoco는 코드 검사 라이브러리로 지원됩니다.
프로젝트에 이미 Jacoco가 설정되어 있는 경우, Datadog 트레이서가 이를 계측하고 자동으로 Datadog에 해당 검사 데이터를 보고합니다.
또는 트레이서를 사용하여 런타임에 테스트 실행에 Jacoco를 추가할 수 있습니다.
DD_CIVISIBILITY_JACOCO_PLUGIN_VERSION
환경 변수로 삽입할 Jacoco 버전을 지정하세요(예: DD_CIVISIBILITY_JACOCO_PLUGIN_VERSION=0.8.11
).
dd-trace>=2.5.0
.Python>=3.7
.coverage>=4.4.2
.pytest>=3.0.0
.pytest-cov>=2.7.0
.unittest>=3.8
.coverage.py
, pytest-cov
코드 검사 만 지원됩니다.테스트가 coverage.py
또는 pytest-cov
,로 계측되면 Datadog 트레이서는 테스트 세션의 test.code_coverage.lines_pct
태그 아래에 코드 검사를 자동 보고합니다.
coverage.py
로 테스트 세션의 총 코드 검사를 보고하려면 다음 단계를 따르세요.
coverage
설치:python3 -m pip install coverage
coverage
명령으로 테스트를 실행합니다.DD_ENV=ci DD_SERVICE=my-python-service coverage run -m pytest
또는 pytest-cov
로 테스트 세션의 총 코드 검사를 보고하려면 다음 단계를 따르세요.
pytest
설치:python3 -m pip install pytest
pytest-cov
설치:python3 -m pip install pytest-cov
--cov
flag to your pytest
명령을 추가하여 테스트를 실행합니다.DD_ENV=ci DD_SERVICE=my-python-service pytest --cov
datadog-ci>=2.17.2
.다음과 같이 JUnit 보고서 업로드를 사용할 때 코드 검사 백분율 값을 업로드할 수 있습니다.
datadog-ci junit upload --service <service_name> --report-measures=test.code_coverage.lines_pct:85 <path>
본 예시에서 85
은 테스트에 포함된 라인의 퍼센테이지 값이며 다른 도구를 사용하여 생성해야 합니다.
코드 검사 보고서는 다른 프로세스에서 생성해야 하며, 그렇지 않은 경우 JUnit 보고서 업로드로 코드 검사 보고서가 생성되지 않습니다. 보고된 메트릭 이름은 test.code_coverage.lines_pct
이어야 합니다.
보고된 코드 검사는 패싯의 총 백분율을 나타내는 @test.code_coverage.lines_pct
으로 보고되며, CI 가시성 탐색기에서 다른 측정값 패싯으로 플로팅할 수 있습니다.
보고된 코드 검사는 다음과 같이 테스트 세션 세부 정보 페이지의 검사 탭에도 표시됩니다.
내보내기 버튼을 클릭하여 그래프를 대시보드 또는 노트북로 내보내고 다음과 같이 해당 데이터를 기반으로 모니터링을 생성할 수 있습니다.
CI 테스트 모니터링을 생성하여 서비스의 코드 검사가 특정 임계값 아래로 떨어질 때마다 알림을 받습니다.
또한 브랜치 개요 페이지 에서 코드 검사의 변화를 확인하여 해당 코드 검사가 개선되었는지 또는 악화되었는지 살펴볼 수 있습니다.
풀 리퀘스트의 테스트 요약 코멘트는 기본 브랜치와 비교하여 GitHub 풀 리퀘스트의 코드 검사 변경 사항을 보여줍니다.
지능형 테스트 러너는 테스트당 코드 검사 수행이 필요하더라도 총 코드 검사 측정값을 자동으로 제공하지 않습니다.
추가 유용한 문서, 링크 및 기사: