Microsoft. Testing.Platform(MTP) CLI 옵션 참조

이 문서에서는 MTP 명령줄 옵션에 대한 중앙 진입점을 제공합니다.

Important

플랫폼 옵션은 MTP 자체에서 사용할 수 있습니다. 확장 옵션은 각 대상 테스트 애플리케이션이 제공하는 확장 패키지를 등록하는 경우에만 사용할 수 있습니다. 패키지를 직접 추가하거나 패키지가 포함된 테스트 SDK 구성 또는 프로필을 사용합니다. 테스트 애플리케이션에서 확장을 등록하지 않으면 옵션이 인식할 수 없으므로 종료 코드 5와 함께 실행이 실패합니다.

플랫폼 옵션

  • @

    응답 파일의 이름을 지정합니다. 응답 파일 이름은 @ 바로 뒤에 와야 하며, @ 문자와 응답 파일 이름 사이에 공백이 없어야 합니다.

    응답 파일의 옵션은 명령줄의 해당 위치에 있는 것처럼 해석됩니다. 백슬래시 문자를 \ 사용하여 선을 연결할 수 없습니다. 응답 파일을 사용하면 터미널 제한을 초과할 수 있는 매우 긴 명령에 도움이 됩니다. 응답 파일을 인라인 명령줄 인수와 결합할 수 있습니다. 다음은 그 예입니다.

    ./TestExecutable.exe @"filter.rsp" --timeout 10s
    

    여기서 filter.rsp 다음 내용을 포함할 수 있습니다.

    --filter "A very long filter"
    

    또는 다음과 같이 단일 rsp 파일을 사용하여 시간 제한과 필터를 모두 지정할 수 있습니다.

    ./TestExecutable.exe @"arguments.rsp"
    
    --filter "A very long filter" --timeout 10s
    

    비고

    SDK 명령줄 파서는 응답 파일의 각 줄이 단일 토큰으로 처리되는 토큰별 접근 방식을 사용합니다 dotnet test. 이 경우 각 인수는 별도의 줄에 있어야 합니다.

    --filter
    A very long filter
    --timeout
    10s
    
  • --config-file

    testconfig.json 파일을 지정합니다.

  • --debug

    시작 시 테스트 실행을 일시 중지하여 테스트 프로세스에 디버거를 연결할 수 있습니다. TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER를 .로 설정하는 것과 1같습니다. 브라우저 플랫폼에서 지원되지 않습니다.

    비고

    이 옵션은 버전 1.9.0부터 MTP에서 사용할 수 있습니다. 이전 --debug-wait-attach 옵션(MTP 1.6.0에서 도입됨)을 대체합니다. 이전 이름이 제거되어 더 이상 사용되지 않아야 합니다.

  • --diagnostic

    진단 로깅을 사용하도록 설정합니다. 기본 로그 수준은 Trace. 각 테스트 소스에 대해 MTP는 <asm>_<tfm>_<arch>_<timestamp>.diag를 기록합니다. 타임스탬프가 충돌하는 경우 MTP는 기존 파일을 덮어쓰는 대신 프로세스 및 카운터 접미사를 추가합니다.

  • --diagnostic-synchronous-write

    기본 제공 파일 로거가 로그를 동기적으로 작성하도록 합니다. 로그 항목을 손실하지 않으려는 시나리오에 유용합니다(프로세스가 충돌하는 경우). 이렇게 하면 테스트 실행 속도가 느려집니다.

    비고

    버전 2.0.0부터 MTP에서 사용할 수 있습니다. MTP 2.0.0에서 제거된 이전 --diagnostic-filelogger-synchronouswrite 옵션을 대체합니다.

  • --diagnostic-output-directory

    진단 로깅의 출력 디렉터리(지정되지 않은 경우)는 기본 TestResults 디렉터리에 생성됩니다.

  • --diagnostic-file-prefix

    로그 파일 이름의 접두사입니다. 기본값은 <asm>_<tfm>_<arch>입니다.

    비고

    버전 2.0.0부터 MTP에서 사용할 수 있습니다. MTP 2.0.0에서 제거된 이전 --diagnostic-output-fileprefix 옵션을 대체합니다.

  • --diagnostic-verbosity

    --diagnostic 스위치를 사용할 때 자세한 정보 표시 수준을 설정합니다. 사용 가능한 값은 Trace, Debug, Information, Warning, Error또는 Critical.

  • --enable-dynamic-extensions

    테스트 애플리케이션 옆에 매니페스트 파일로 선언된 *.testingplatformextensions.json 확장을 로드할 수 있습니다. 동적 확장은 기본적으로 사용하지 않도록 설정됩니다. 보안 요구 사항 및 매니페스트 스키마는 동적으로 확장 로드를 참조하세요.

    비고

    이 옵션은 버전 2.4.0부터 MTP에서 사용할 수 있습니다.

  • --exit-on-process-exit

    종속 프로세스가 종료되면 테스트 프로세스를 종료합니다. PID를 제공해야 합니다.

  • --filter-uid

    테스트 노드 UID에서 실행할 테스트를 필터링합니다. 하나 이상의 UID를 허용합니다.

    프레임워크 작성자는 검색 및 실행을 위해 TestNodeUidListFilter를 준수해야 합니다. 구현 지침은 요청 필터 적용을(를) 참조하세요.

    비고

    이 옵션은 버전 1.8.0부터 MTP에서 사용할 수 있습니다. MTP 2.3.0부터는 --filter-uid와 --treenode-filter를 함께 사용할 수 없습니다. 둘 다 지정하면 명령줄 유효성 검사에 실패하며 종료 코드 InvalidCommandLine가 반환됩니다.

  • --help

    명령을 사용하는 방법에 대한 설명을 출력합니다.

  • --ignore-exit-code

    0이 아닌 일부 종료 코드를 무시하고 대신 0반환할 수 있습니다. 자세한 내용은 특정 종료 코드 무시를 참조하세요.

  • --info

    다음과 같은 .NET 테스트 애플리케이션에 대한 고급 정보를 표시합니다.

    • 플랫폼
    • 환경입니다.
    • 등록된 각 명령줄 공급자(예: name, version, description및 options).
    • 등록된 각 도구(예: command, name, version, description) 및 모든 명령줄 공급자

    이 기능은 동일한 명령줄 옵션을 등록하는 확장 또는 여러 버전의 확장(또는 플랫폼) 간에 사용 가능한 옵션의 변경 내용을 이해하는 데 사용됩니다.

  • --list-tests

    실행하지 않고 사용 가능한 테스트를 나열합니다. 선택적으로 출력 형식을 제어하는 인수를 받을 수 있습니다: text(기본값, 사람이 읽기 쉬운 형식) 또는 json.

    구조화된 메타데이터와 예시는 JSON으로 테스트 검색을(를) 참조하세요.

    비고

    출력 형식은 json 버전 2.3.0부터 MTP에서 사용할 수 있습니다.

  • --maximum-failed-tests

    최대 테스트 실패 수를 양수로 지정합니다. 오류 수가 최대값에 도달하면 MTP는 정상 중지를 요청하고 종료 코드를 13반환합니다. 이미 진행 중인 테스트는 완료할 수 있으므로 최종 실패 횟수가 최대값을 초과할 수 있습니다. 자세한 내용은 MTP 종료 코드를 참조하세요.

    프레임워크 작성자는 IGracefulStopTestExecutionCapability을 구현하고 등록하며 옵션 공급자를 AddMaximumFailedTestsService로 등록해야 합니다. 기능 설명서에는 구현 및 등록 예제가 포함되어 있습니다. 테스트 작성자는 자신의 프레임워크가 이미 이 옵션을 지원하는 경우 이 기능을 구현할 필요가 없습니다.

    비고

    이 기능은 버전 1.5부터 MTP에서 사용할 수 있습니다.

  • --minimum-expected-tests

    실행해야 하는 테스트 수의 최소값을 0보다 큰 값으로 지정합니다. 실행이 0을 포함하여 더 적은 테스트를 실행하면 코드 9와 함께 종료됩니다. 명시적으로 지정된 최소값이 --zero-tests-policy보다 우선합니다.

    이 dotnet test옵션은 앞에 --지정된 경우 전체 실행에 적용되고, 다음에 지정된 경우 각 테스트 모듈에 적용됩니다 --. 자세한 내용은 전체 실행 및 모듈별 최소값을 참조하세요.

    비고

    --minimum-expected-tests 0 가 잘못되었습니다. zero-tests 종료 코드를 숨기려면 --ignore-exit-code 8를 사용합니다.

  • --no-banner

    시작 배너, 저작권 메시지 및 원격 분석 배너를 사용하지 않도록 설정합니다. 또는 TESTINGPLATFORM_NOBANNERDOTNET_NOLOGO를 통해 동일한 효과를 달성할 수 있습니다.

  • --results-directory

    MTP가 테스트 결과를 배치하는 디렉터리를 지정합니다. 디렉터리가 없으면 생성됩니다. 기본값은 MTP의 작업 디렉터리 아래에 있는 TestResults입니다. 테스트 애플리케이션을 직접 실행하면 작업 디렉터리의 기본값은 테스트 애플리케이션이 있는 디렉터리입니다.

    dotnet test의 기본값은 SDK 및 MTP 버전에 따라 달라집니다. 공유된 호출 기준 상대 루트, 버전 요구 사항 및 아티팩트 레이아웃 재정의 사항에 대해서는 결과 및 아티팩트를 참조하세요.

    여러 테스트 애플리케이션을 격리하려면 -- 전에 SDK의 --results-directory-layout per-module 옵션을 전달하세요. 이 옵션은 MTP 코어가 아닌 SDK에 속하며, 테스트 애플리케이션을 직접 실행할 경우 사용할 수 없습니다.

  • --server

    편집기, IDE 또는 도구 통합을 위해 JSON-RPC 서버 모드에서 테스트 애플리케이션을 시작합니다. 값을 생략하거나 사용합니다 jsonrpc. 지원되는 원본 전용 클라이언트는 MTP 서버 모드를 참조하세요.

    Important

    dotnettestcli 값과 해당 전송 인수는 .NET SDK 통합의 내부입니다. 수동으로 전달하지 마세요.

  • --show-slowest-tests

    터미널 요약에서 요청된 가장 느린 테스트 수를 표시합니다. 실행에 여러 테스트 모듈이 포함된 경우 MTP는 각 모듈에 대해 가장 느린 테스트를 보고합니다.

    비고

    이 옵션은 버전 2.4.0부터 MTP에서 사용할 수 있습니다.

  • --timeout

    글로벌 테스트 실행 타임아웃입니다. 하나의 인수를 <value>[h|m|s] 형식의 문자열로 사용하며, 여기서 <value>은 부동 소수점 숫자입니다.

  • --treenode-filter

    트리 필터 식을 사용하여 실행할 테스트를 필터링합니다. 트리 필터는 고급 시나리오보다 --filter 더 풍부한 일치를 제공합니다.

    비고

    MTP 2.3.0부터는 --treenode-filter와 --filter-uid를 함께 사용할 수 없습니다. 둘 다 지정하면 명령줄 유효성 검사에 실패하며 종료 코드 InvalidCommandLine가 반환됩니다.

  • --zero-tests-policy

    모든 테스트를 건너뛰었으므로 테스트를 실행하지 않는 실행이 실패로 처리되는지 여부를 제어합니다. 유효한 값은 allow-skipped (기본값) 및 strict. allow-skipped에서는 모든 항목이 건너뛰어진 실행도 성공합니다. strict를 사용하면 종료 코드 8와 함께 실패합니다. 명시적 --minimum-expected-tests 값은 이 정책을 대체하고 최소값이 충족되지 않을 때 종료 코드를 9 사용합니다.

    비고

    이 옵션은 버전 2.3.0부터 MTP에서 사용할 수 있습니다. dotnet test를 사용하면 -- 뒤의 옵션을 각 테스트 모듈에 전달할 수 있습니다. 전역 최소값을 설정하지 않으면 .NET 11 SDK는 전체 실행 제로 테스트 평결을 별도로 결정합니다. 자세한 내용은 전체 실행 및 모듈별 최소값을 참조하세요.

테스트를 JSON 형식으로 검색

MTP 2.3.0부터는 사람이 읽을 수 있는 목록을 구문 분석하는 대신, 기계가 읽을 수 있는 JSON 문서로 테스트를 검색하려면 --list-tests json를 사용하세요:

dotnet Contoso.MyTests.dll --list-tests json --no-banner

빌드 출력을 생성하는 명령 대신 빌드된 테스트 애플리케이션을 실행합니다. 표준 출력을 표준 오류와 분리해 캡처하고, 문서를 처리하기 전에 프로세스 종료 코드를 확인하세요. 기계 판독 가능 모드에서는 애플리케이션과 확장의 시작 메시지를 표준 출력에 표시하지 않습니다.

검색을 --report-trx와 같은 실행 전용 옵션과 결합하지 마세요. testconfig.json에서 해당 옵션을 사용하도록 설정한 경우, 해당 옵션을 생략하는 별도의 검색 구성과 함께 --config-file를 사용합니다.

문서에는 schemaVersion 배열과 tests 배열이 포함되어 있습니다. 각 테스트에는 uid 및 displayName이 포함됩니다. 선택적 필드에는 properties, traits, type, location가 포함되며, 테스트 프레임워크가 해당 메타데이터를 제공하는 경우에 한합니다. 예를 들어, Environment 특성이 있는 테스트는 다음과 같은 결과를 생성할 수 있습니다.

{
  "schemaVersion": 1,
  "tests": [
    {
      "uid": "<test-uid>",
      "displayName": "ConnectToService",
      "traits": [
        { "key": "Environment", "value": "Staging" }
      ]
    }
  ]
}

properties와 traits는 둘 다 JSON 개체가 아닌 키-값 항목의 배열을 사용합니다. 키가 고유하다고 가정하지 마세요. 특성은 MSTest 범주 및 사용자 지정 TestMetadataProperty 값을 포함한 공용 TestProperty 값을 나타냅니다. properties 배열에는 플랫폼이나 호환성 계층이 제공하는 직렬화 가능한 문자열 속성이 포함됩니다. 모든 메모리 내 속성을 내보내는 것은 아니며 내부 SerializableKeyValuePairStringProperty 형식은 외부 프레임워크 또는 확장에 대한 API가 아닙니다.

검색된 UID를 --filter-uid 사용하여 선택한 테스트를 실행하세요. 검색, 실행, 취소 및 라이브 업데이트가 있는 형식화된 .NET 클라이언트의 경우 MTP 서버 모드를 사용합니다.

시나리오별 확장 옵션

다음 표를 사용하여 각 확장의 패키지 및 옵션을 찾습니다. 테스트 SDK 프로필은 직접 패키지 참조 대신 패키지를 제공할 수 있습니다.

시나리오 필수 구성 요소 기능 설명서
코드 커버리지 수집 Microsoft.Testing.Extensions.CodeCoverage 또는 coverlet.MTP 코드 검사
크래시 또는 응답 중지 덤프 수집 Microsoft.Testing.Extensions.CrashDump 또는 Microsoft.Testing.Extensions.HangDump 크래시 및 멈춤 덤프
테스트 보고서 생성 선택한 형식에 대한 확장 패키지(예: Microsoft.Testing.Extensions.TrxReport 테스트 보고서
터미널 출력 사용자 지정 MTP 코어(추가 패키지 없음) 터미널 출력
실패한 테스트 다시 시도 Microsoft.Testing.Extensions.Retry 재시도

테스트 앱에서 옵션 검색

테스트 실행 파일을 --help와 함께 실행하거나, dotnet test --help를 MTP 모드에서 실행하여 현재 확장 집합에 대해 사용할 수 있는 옵션 목록을 확인할 수 있습니다.

MTP 2.4부터는 알 수 없는 옵션 오류가 발생하면, 가능한 경우 유일하게 일치하는 옵션 이름을 제안합니다. 이 옵션이 테스트 애플리케이션이 등록하지 않은 알려진 Microsoft 제공 확장에 속하는 경우 이 오류는 옵션을 제공하는 NuGet 패키지도 식별합니다.

등록된 공급자 및 옵션에 대한 고급 진단의 경우 다음을 실행합니다 --info.

등록된 도구 실행

일부 확장은 테스트를 실행하는 대신 아티팩트 처리 명령을 등록합니다. 명령 이름을 테스트 애플리케이션의 첫 번째 위치 인수로 전달합니다. 예를 들어 TRX 확장은 다음을 제공합니다merge-trxms-trxcompare.

애플리케이션을 --info와 함께 실행하여 등록된 도구 및 해당 명령줄 옵션을 나열합니다. 이러한 명령은 테스트 애플리케이션에 속합니다. dotnet tool 명령이 아닙니다.

참고하십시오