의 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 test
MTP 모드에서 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