Share via


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.Platformdotnet 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>

이 모드에서는 실행에 대한 추가 매개 변수가 명령줄을 통해 직접 제공되지 않습니다. 이는 TestingPlatformCommandLineArguments라는 MSBuild 속성으로 제공되어야 합니다.

dotnet test -p:TestingPlatformCommandLineArguments=" --minimum-expected-tests 10 "

추가 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>