다음을 통해 공유


의 VSTest 모드에서 Microsoft.Testing.Platform 사용 dotnet test

이 문서는 Microsoft.Testing.Platform.MSBuild에서 제공하는 Microsoft.Testing.Platform의 dotnet testdotnet test의 VSTest 모드에서 실행할 때 통합하는 방법에 대해 설명합니다.

이 문서를 살펴보기 전에 먼저 두 가지 모드(VSTest 및 MTP 모드 )를 설명하는 dotnet test 읽는 것이 좋습니다.

기본적으로 dotnet test VSTest를 사용하여 테스트를 실행합니다. Microsoft.Testing.Platform에 대한 지원을 dotnet test에서 사용하도록 설정하려면 두 가지 옵션이 있습니다.

  1. VSTest 모드에서 dotnet test를 사용하고, 프로젝트 파일에서 <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport> MSBuild 속성을 지정합니다.
  2. 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, TestingPlatformDotnetTestSupportTestingPlatformCaptureOutput 같은 속성을 추가합니다. 그러나 이러한 속성을 Directory.Build.props에 설정하는 것이 강력히 권장합니다. 이렇게 하면 모든 테스트 프로젝트 파일에 추가할 필요가 없으며 이러한 속성을 설정하지 않는 새 프로젝트를 도입할 위험이 없으며 일부 프로젝트는 VSTest인 반면 다른 프로젝트는 제대로 작동하지 않을 수 있으며 지원되지 않는 시나리오인 Microsoft.Testing.Platform 솔루션으로 끝날 위험이 없습니다.