의 VSTest 모드에서 Microsoft.Testing.Platform 사용
이 문서는 Microsoft.Testing.Platform.MSBuild에서 제공하는 Microsoft.Testing.Platform의 dotnet test를 dotnet test의 VSTest 모드에서 실행할 때 통합하는 방법에 대해 설명합니다.
이 문서를 살펴보기 전에 먼저 두 가지 모드(VSTest 및 MTP 모드 )를 설명하는 dotnet test 읽는 것이 좋습니다.
기본적으로 dotnet test VSTest를 사용하여 테스트를 실행합니다.
Microsoft.Testing.Platform에 대한 지원을 dotnet test에서 사용하도록 설정하려면 두 가지 옵션이 있습니다.
- VSTest 모드에서
dotnet test를 사용하고, 프로젝트 파일에서<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>MSBuild 속성을 지정합니다. -
dotnet testMTP 모드에서 MTP의 기본 지원을 더 잘 활용하려면dotnet test를 사용하세요. 이는 .NET 10 SDK부터 지원됩니다.
두 옵션 모두 Testing with dotnet test 문서에서 자세히 설명되어 있습니다.
중요하다
이 문서의 나머지 내용은 VSTest 모드와 관련이 있습니다 dotnet test.
주의
.NET 10 SDK부터는 Microsoft.Testing.Platform으로 실행할 때 VSTest 모드 dotnet test 를 사용하지 않는 것이 좋습니다.
테스트당 실패 표시
기본적으로 테스트 실패는 .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>
<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>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
</PropertyGroup>
<!-- ... -->
</Project>
중요하다
위의 모든 예제에서는 csproj 파일에 EnableMSTestRunner, TestingPlatformDotnetTestSupport및 TestingPlatformCaptureOutput 같은 속성을 추가합니다. 그러나 이러한 속성을 Directory.Build.props에 설정하는 것이 강력히 권장합니다. 이렇게 하면 모든 테스트 프로젝트 파일에 추가할 필요가 없으며 이러한 속성을 설정하지 않는 새 프로젝트를 도입할 위험이 없으며 일부 프로젝트는 VSTest인 반면 다른 프로젝트는 제대로 작동하지 않을 수 있으며 지원되지 않는 시나리오인 Microsoft.Testing.Platform 솔루션으로 끝날 위험이 없습니다.
.NET