다음을 통해 공유


.NET 대한 테스트 플랫폼 개요

.NET 테스트 프레임워크와 테스트 플랫폼은 테스트를 검색하고 실행하기 위해 함께 작동하는 다양한 구성 요소입니다.

  • 테스트 프레임워크는 MSTest, NUnit, xUnit.net 또는 TUnit과 같이 작성하는 테스트 모델을 정의합니다.
  • 테스트 플랫폼은 테스트를 실행하고, IDE 및 CLI와 통합하며, 공유 확장 지점을 제공합니다.

다음 두 테스트 플랫폼 중에서 선택할 수 있습니다.

  • VSTest
  • MTP(Microsoft.Testing.Platform)

팁 (조언)

가장 간단한 설정의 경우 리포지토리에 대해 하나의 플랫폼을 선택하고 해당 플랫폼에 대해 테스트 프로젝트, CI 및 도구를 일관되게 구성합니다. VSTest 기반 및 Microsoft.Testing.Platform 기반 .NET 테스트 프로젝트를 동일한 솔루션에 혼합하거나 해당 시나리오가 지원되지 않으므로 구성을 실행하지 마세요. VSTest에 의존하는 비 .NET 테스트(예: C++ 또는 JavaScript 테스트)를 실행하는 경우 MTP 기반 .NET 테스트와 별도의 구성으로 해당 테스트를 실행합니다.

플랫폼을 선택하는 방법

다음 시나리오를 사용하여 신속하게 선택합니다.

사용 사례 선택
네이티브 AOT 또는 트리밍 테스트 실행 시나리오가 필요합니다. Microsoft.Testing.Platform MTP는 이러한 최신 배포 시나리오를 지원하지만 VSTest는 지원하지 않습니다.
패키지된 WinUI 또는 UWP 테스트 프로젝트를 빌드하고 있습니다. VSTest 이러한 프로젝트 형식은 현재 MTP에서 지원되지 않습니다.
.NET 테스트와 비 .NET 테스트 어댑터(예: JavaScript 또는 C++ 어댑터)를 혼합해야 합니다. VSTest VSTest는 혼합 언어 어댑터 시나리오를 지원하지만 MTP는 .NET 관련됩니다.
테스트 프로젝트가 일반 실행 파일(dotnet run직접 실행 파일 실행 dotnet watch및 시작 프로젝트 F5 흐름)처럼 동작하도록 합니다. Microsoft.Testing.Platform MTP는 실행 가능 우선이므로 테스트 앱은 로컬 및 CI 워크플로에서 표준 .NET 앱처럼 실행됩니다.
기존 도구에서 오랫동안 확립된 통합을 사용합니다. VSTest VSTest는 기존 제품, 작업 및 파이프라인에서 가장 긴 호환성 실적을 보유하고 있습니다. MTP 지원은 에코시스템에서 증가하고 있지만 일부 통합은 VSTest보다 뒤쳐질 수 있습니다.
엄격한 기본값 및 명시적 동작을 선호합니다. Microsoft.Testing.Platform MTP는 간단한 옵트인 확장 모델 및 빌드 시간 등록을 사용하여 결정적 실행을 선호합니다. 예를 들어 테스트가 실행되지 않을 때 실패하고, 환경 종속 가변성을 줄이고, 환경당 개별 확장을 사용하지 않도록 설정할 수 있습니다.
이전 버전과 호환되는 더 부드럽고 광범위한 기본값을 선호합니다. VSTest 두 플랫폼 모두 이전 버전과의 호환성을 중요하게 사용합니다. VSTest는 다양한 기존 도구 체인에 대한 호환성 지향 기본값의 우선 순위를 지정하고 MTP는 자체 확장 모델 내에서 이전 버전과의 호환성을 제공합니다.
현재 워크플로에서 VSTest 관련 문제 또는 동작에 의해 차단됩니다. Microsoft.Testing.Platform 대부분의 시나리오에서는 런타임 모델 및 확장 아키텍처의 차이로 인해 MTP로 이동할 때 동일한 워크플로가 영향을 받지 않습니다.

특정 사용 사례가 나열되지 않은 경우 두 플랫폼 모두 유효한 선택 사항입니다.

통합 및 도구 지원

통합 영역 VSTest Microsoft.Testing.Platform
IDE 통합 VSTest 프로토콜 및 어댑터에 의존하는 Visual Studio 및 기타 도구 간에 완성도 높은 통합 에코시스템의 일부에서 지속적인 통합 작업을 통해 Visual Studio 및 Visual Studio Code 시나리오에서 지원됩니다.
CI 및 외부 도구 기존 Microsoft 및 비 Microsoft 도구 및 작업에 대한 광범위한 지원. Azure DevOps VSTest 작업(VSTest@3, vstest.console) 또는 .NET 작업(DotNetCoreCLI@2, dotnet test)을 사용할 수 있습니다. CI 및 최신 .NET 워크플로에서 작동하지만 일부 타사 통합은 여전히 VSTest보다 뒤쳐질 수 있습니다. Azure DevOps .NET 작업(DotNetCoreCLI@2, dotnet test)을 사용합니다.
dotnet test 동작 기본 VSTest 모드입니다. VSTest 인수 및 동작이 적용되었습니다. 네이티브 MTP 모드는 .NET 10 SDK 이상에서 사용할 수 있습니다.

모드 및 인수에 대한 dotnet test 자세한 내용은 테스트를 dotnet test참조하세요.

테스트 프레임워크에서 시작

VSTest를 선택하는 경우

Microsoft.Testing.Platform을 선택하는 경우

다음 단계: