dotnet test
와 함께 Microsoft.Testing.Platform을 사용합니다.
이 문서에서는 Microsoft.Testing.Platform
사용 시 dotnet test
를 사용하여 테스트를 실행하는 방법과 Microsoft.Testing.Platform을 통해 테스트를 실행할 때 생성되는 MSBuild 출력을 구성하는 데 사용할 수 있는 다양한 옵션에 대해 설명합니다.
이 문서에서는 dotnet test
를 사용하여 Microsoft.Testing.Platform
을 사용하는 솔루션(*.sln)에서 모든 테스트를 실행하는 방법을 보여 줍니다.
dotnet test
통합
dotnet test 명령은 솔루션, 프로젝트 또는 이미 빌드된 어셈블리에서 테스트를 실행하는 방법입니다. Microsoft.Testing.Platform은 이 인프라에 연결되어 특히 VSTest에서 Microsoft.Testing.Platform
으로 마이그레이션할 때 테스트를 실행하는 통합된 방법을 제공합니다.
dotnet test
통합 - VSTest 모드
Microsoft.Testing.Platform
은 dotnet test
와 원활하게 작동할 수 있도록 호환성 계층(VSTest 브리지)을 제공합니다.
테스트는 다음을 실행하여 실행할 수 있습니다.
dotnet test
이 계층은 VSTest를 통해 테스트를 실행하고 VSTest 테스트 프레임워크 어댑터 수준에서 통합됩니다.
dotnet test
- Microsoft.Testing.Platform 모드
기본적으로 VSTest는 Microsoft.Testing.Platform
테스트를 실행하는 데 사용됩니다. 프로젝트 파일에서 <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
설정을 지정하여 전체 Microsoft.Testing.Platform
를 활성화할 수 있습니다. 이 설정은 VSTest를 사용하지 않도록 설정하며, Microsoft.Testing.Platform.MSBuild NuGet 패키지에 대한 전이적 종속성 때문에 솔루션에서 권한이 부여된 모든 Microsoft.Testing.Platform
테스트 프로젝트를 직접 실행합니다. 직접 Microsoft.Testing.Platform
테스트 프로젝트를 통과하면 원활하게 작동합니다.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<!-- Add this to your project file. -->
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
</PropertyGroup>
<!-- ... -->
</Project>
이 모드에서는 다음 방법 중 하나로 테스트 애플리케이션을 호출할 때 사용되는 추가 매개 변수를 제공할 수 있습니다.
Microsoft.Testing.Platform
버전 1.4(MSTest 버전 3.6에 포함됨)부터 명령줄에서 이중 대시--
후 옵션을 추가할 수 있습니다.dotnet test -- --minimum-expected-tests 10
명령줄에서
TestingPlatformCommandLineArguments
MSBuild 속성을 사용하여 다음을 수행합니다.dotnet test -p:TestingPlatformCommandLineArguments="--minimum-expected-tests 10"
프로젝트 파일에서
<PropertyGroup> ... <TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments> </PropertyGroup>
추가 MSBuild 옵션
MSBuild 통합은 프로젝트 파일에서 지정하거나 명령줄의 전역 속성을 통해 지정할 수 있는 옵션을 제공합니다(예: -p:TestingPlatformShowTestsFailure=true
).
사용 가능한 옵션은 다음과 같습니다.
테스트당 실패 표시
기본적으로 테스트 실패는 .log 파일로 요약되고 테스트 프로젝트당 단일 실패가 MSBuild에 보고됩니다.
실패한 테스트당 오류를 표시하려면 명령줄에서 -p:TestingPlatformShowTestsFailure=true
를 지정하거나 프로젝트 파일에 <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
속성을 추가합니다.
명령줄에서:
dotnet test -p:TestingPlatformShowTestsFailure=true
또는 프로젝트 파일에서:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
</PropertyGroup>
<!-- ... -->
</Project>
전체 플랫폼 출력 표시
기본적으로 기본 테스트 실행 파일이 작성하는 모든 콘솔 출력은 캡처되어 사용자에게 숨겨집니다. 여기에는 배너, 버전 정보 및 형식화된 테스트 정보가 포함됩니다.
MSBuild 출력과 함께 이 정보를 표시하려면 <TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
을 사용합니다.
이 옵션은 테스트 프레임워크가 Console.WriteLine
에 의해 작성된 사용자 출력을 캡처하는 방법이나 콘솔에 쓰는 다른 유사한 방법에 영향을 주지 않습니다.
명령줄에서:
dotnet test -p:TestingPlatformCaptureOutput=false
또는 프로젝트 파일에서:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
</PropertyGroup>
<!-- ... -->
</Project>
.NET