다음을 통해 공유


MTP(Microsoft.Testing.Platform)를 사용한 dotnet test

이 문서는 .NET 10 SDK 이상 버전 ✔️ 적용됩니다.

이름

dotnet test - Microsoft.Testing.Platform을 사용하여 단위 테스트를 실행하는 데 사용되는 .NET 테스트 드라이버입니다.

개요

dotnet test
    [--project <PROJECT_PATH>]
    [--solution <SOLUTION_PATH>]
    [--test-modules <EXPRESSION>] 
    [--root-directory <ROOT_PATH>]
    [--max-parallel-test-modules <NUMBER>]
    [-a|--arch <ARCHITECTURE>]
    [-c|--configuration <CONFIGURATION>]
    [-f|--framework <FRAMEWORK>]
    [--os <OS>]
    [-r|--runtime <RUNTIME_IDENTIFIER>]
    [-v|--verbosity <LEVEL>]
    [--no-build]
    [--no-restore]
    [--no-ansi]
    [--no-progress]
    [--output <VERBOSITY_LEVEL>]
    [--no-launch-profile]
    [--no-launch-profile-arguments]
    [<args>...]

dotnet test -h|--help

Description

Microsoft Testing Platform을 사용하면 dotnet test VSTest보다 빠르게 작동합니다. 테스트 관련 인수는 테스트 프로젝트의 등록된 확장에 연결되므로 더 이상 수정되지 않습니다. 또한 MTP는 테스트를 실행할 때 globbing 필터를 지원합니다. 자세한 내용은 Microsoft.Testing.Platform을 참조하세요.

경고

microsoft.Testing.Platform이 global.json통해 옵트인되면 dotnet test 모든 테스트 프로젝트가 Microsoft.Testing.Platform을 사용할 것으로 예상합니다. 테스트 프로젝트 중에서 VSTest를 사용하는 경우 오류가 발생합니다.

암시적 복원

dotnet restore, dotnet new, dotnet build, dotnet run, dotnet testdotnet publish같은 복원이 필요한 모든 명령에서 암시적으로 실행되므로 dotnet pack 실행할 필요가 없습니다. 암시적 복원을 사용하지 않도록 설정하려면 --no-restore 옵션을 사용합니다.

dotnet restore 명령은 Azure DevOps Services의 연속 통합 빌드 또는 복원이 언제 발생할지를 명시적으로 제어해야 하는 빌드 시스템처럼 명시적인 복원이 적합한 특정 시나리오에서 여전히 유용합니다.

NuGet 피드를 관리하는 방법에 대한 자세한 내용은 dotnet restore 설명서참조하세요.

Options

비고

한 번에 --project--solution--test-modules다음 옵션 중 하나만 사용할 수 있습니다. 이러한 옵션은 결합할 수 없습니다. 또한 --test-modules사용하는 경우 --arch, --configuration, --framework, --os또는 --runtime지정할 수 없습니다. 이러한 옵션은 이미 빌드된 모듈과 관련이 없습니다.

  • --project <PROJECT_PATH>

    실행할 프로젝트 파일의 경로를 지정합니다(폴더 이름 또는 전체 경로). 지정하지 않으면 현재 디렉터리로 기본 설정됩니다.

  • --solution <SOLUTION_PATH>

    실행할 솔루션 파일의 경로(폴더 이름 또는 전체 경로)를 지정합니다. 지정하지 않으면 현재 디렉터리로 기본 설정됩니다.

  • --test-modules <EXPRESSION>

    .NET에서 파일 globbing을 사용하여 테스트 모듈을 필터링합니다. 해당 테스트 모듈에 속하는 테스트만 실행됩니다. .NET에서 파일 globbing을 사용하는 방법에 대한 자세한 내용 및 예제는 파일 globbing참조하세요.

  • --root-directory <ROOT_PATH>

    --test-modules 옵션의 루트 디렉터리를 지정합니다. --test-modules 옵션에서만 사용할 수 있습니다.

  • --max-parallel-test-modules <NUMBER>

    병렬로 실행할 수 있는 최대 테스트 모듈 수를 지정합니다. 기본값은 Environment.ProcessorCount입니다.

  • -a|--arch <ARCHITECTURE>

    대상 아키텍처를 지정합니다. 이는 제공된 값이 기본 RID와 결합되는 RID(런타임 식별자)를 설정하는 약식 구문입니다. 예를 들어, win-x64 머신에서 --arch x86을 지정하면 RID가 win-x86으로 설정됩니다. 이 옵션을 사용하는 경우 -r|--runtime 옵션을 사용하지 마세요. .NET 6 미리 보기 7 이후 사용 가능합니다.

  • -c|--configuration <CONFIGURATION>

    빌드 구성을 정의합니다. 대부분의 프로젝트의 기본값은 />이지만 프로젝트에서 빌드 구성 설정을 재정의할 수 있습니다.

  • -f|--framework <FRAMEWORK>

    테스트를 실행할 대상 프레임워크의 TFM(대상 프레임워크 모니커)입니다. 대상 프레임워크도 프로젝트 파일에 지정되어야 합니다.

  • --os <OS>

    대상 운영 체제(OS)를 지정합니다. 이는 제공된 값이 기본 RID와 결합되는 RID(런타임 식별자)를 설정하는 약식 구문입니다. 예를 들어, win-x64 머신에서 --os linux을 지정하면 RID가 linux-x64으로 설정됩니다. 이 옵션을 사용하는 경우 -r|--runtime 옵션을 사용하지 마세요. .NET 6부터 사용할 수 있습니다.

  • -r|--runtime <RUNTIME_IDENTIFIER>

    테스트할 대상 런타임입니다.

    .NET SDK 7부터 약식 -r을 사용할 수 있습니다.

    비고

    전역 RuntimeIdentifier 속성이 있는 솔루션에 대한 테스트 실행(명시적 또는 통해 --arch--runtime또는 --os)은 지원되지 않습니다. 대신 개별 프로젝트 수준에서 설정합니다 RuntimeIdentifier .

  • -v|--verbosity <LEVEL>

    명령의 세부 정보 표시 수준을 설정합니다. 허용되는 값은 q[uiet], m[inimal], n[ormal], d[etailed]diag[nostic]. 자세한 내용은 LoggerVerbosity를 참조하세요.

  • --no-build

    테스트 프로젝트를 실행하기 전에 빌드되지 않도록 지정합니다. 또한 --no-restore 플래그를 암시적으로 설정합니다.

  • --no-restore

    명령을 실행할 때 암시적 복원이 실행되지 않도록 지정합니다.

  • --no-ansi

    화면에 ANSI 이스케이프 문자를 출력하지 않도록 설정합니다.

  • --no-progress

    화면에 대한 보고 진행률을 사용하지 않도록 설정합니다.

  • --output <VERBOSITY_LEVEL>

    테스트를 보고할 때 출력 세부 정보를 지정합니다. 유효한 값은 NormalDetailed입니다. 기본값은 Normal입니다.

  • --no-launch-profile

    launchSettings.json 사용하여 애플리케이션을 구성하지 마세요. 기본적으로 launchSettings.json 환경 변수 및 명령줄 인수를 테스트 실행 파일에 적용할 수 있는 사용 됩니다.

  • --no-launch-profile-arguments

    시작 프로필에서 지정한 인수를 commandLineArgs 사용하여 애플리케이션을 실행하지 마세요.

  • --property:<NAME>=<VALUE>

    하나 이상의 MSBuild 속성을 설정합니다. 옵션을 반복하여 여러 속성을 지정합니다.

    --property:<NAME1>=<VALUE1> --property:<NAME2>=<VALUE2>
    

    약식 -p--property 대신 사용할 수 있습니다. /property:property=value 동일하게 적용되며 짧은 형식은 /p. 사용 가능한 인수에 대한 자세한 내용은 dotnet msbuild 설명서에서 확인할 수 있습니다.

  • -?|-h|--help

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

  • args

    테스트 애플리케이션에 전달할 추가 인수를 지정합니다. 여러 개의 인수를 구분하려면 공백을 사용합니다. 전달할 내용에 대한 자세한 내용과 예제는 Microsoft.Testing.Platform 개요Microsoft.Testing.Platform 확장참조하세요.

    팁 (조언)

    특정 프로젝트에 대한 추가 인수를 지정하려면 TestingPlatformCommandLineArguments MSBuild 속성을 사용합니다.

비고

파일에 대한 추적 로깅을 사용하도록 설정하려면 환경 변수 DOTNET_CLI_TEST_TRACEFILE 사용하여 추적 파일의 경로를 제공합니다.

예시

  • 현재 디렉터리의 프로젝트 또는 솔루션에서 테스트를 실행합니다.

    dotnet test
    
  • TestProject 프로젝트에서 테스트를 실행합니다.

    dotnet test --project ./TestProject/TestProject.csproj
    
  • TestProjects 솔루션에서 테스트를 실행합니다.

    dotnet test --solution ./TestProjects/TestProjects.sln
    
  • TestProject.dll 어셈블리를 사용하여 테스트를 실행합니다.

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll"
    
  • 루트 디렉터리에서 TestProject.dll 어셈블리를 사용하여 테스트를 실행합니다.

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll" --root-directory "c:\code"
    
  • 코드 검사를 사용하여 현재 디렉터리에서 테스트를 실행합니다.

    dotnet test --coverage
    
  • TestProject-bl(이진 파일 로그) 인수를 제공하여 msbuild 프로젝트에서 테스트를 실행합니다.

    dotnet test --project ./TestProject/TestProject.csproj -bl
    
  • MSBuild TestProject 속성을 DefineConstants로 설정하여 DEV 프로젝트에서 테스트를 실행합니다.

    dotnet test --project ./TestProject/TestProject.csproj -p:DefineConstants="DEV"
    

참고하십시오