MSTest SDK 개요
MSTest.Sdk는 MSTest 앱을 빌드하기 위한 MSBuild 프로젝트 SDK입니다. 이 SDK 없이 MSTest 앱을 빌드할 수 있지만 MSTest SDK는 다음과 같습니다.
- MSTest를 사용한 테스트를 위한 최고 수준의 환경을 제공하도록 맞춤화되었습니다.
- 대부분의 사용자에게 권장되는 대상입니다.
- 다른 사용자를 위해 구성하기 쉽습니다.
MSTest SDK는 MSTest 실행기를 사용하여 테스트를 발견하고 실행합니다.
프로젝트의 Project
노드의 Sdk
특성을 업데이트하기만 하면 프로젝트에서 MSTest.Sdk
를 사용하도록 설정할 수 있습니다.
<Project Sdk="MSTest.Sdk/3.3.1">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
<!-- references to the code to test -->
</Project>
참고 항목
/3.3.1
은 SDK를 제공하는 첫 번째 버전이므로 예로 제공되었지만 최신 버전으로 바뀔 수 있습니다.
버전 처리를 간소화하려면 global.json을 사용하여 솔루션 수준에서 SDK 버전을 설정하는 것이 좋습니다. 예를 들어 프로젝트 파일은 다음과 같습니다.
<Project Sdk="MSTest.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
<!-- references to the code to test -->
</Project>
그런 다음 다음과 같이 MSTest.Sdk
버전을 지정하는 global.json 파일이 있습니다.
{
"msbuild-sdks": {
"MSTest.Sdk": "3.3.1"
}
}
자세한 내용은 MSBuild 프로젝트 SDK 사용을 참조하세요.
프로젝트를 build
하면 프로젝트에서 설정한 표준 NuGet 워크플로를 사용하여 필요한 모든 구성 요소가 복원되고 설치됩니다.
테스트를 빌드하고 실행하는 데 다른 어떤 것도 필요하지 않으며 "클래식" MSTest 프로젝트에서 사용하는 것과 동일한 도구(예: dotnet test
또는 Visual Studio)를 사용할 수 있습니다.
실행기 선택
기본적으로 MSTest SDK는 MSTest 실행기에 따라 다르지만 <UseVSTest>true</UseVSTest>
속성을 추가하면 쉽게 VSTest로 전환할 수 있습니다.
MSTest 실행기 확장
NuGet 패키지 확장 집합을 통해 MSTest runner
환경을 사용자 지정할 수 있습니다. 이 환경을 간소화하고 개선하기 위해 MSTest SDK에는 두 가지 기능이 도입되었습니다.
MSTest 실행기 프로필
프로필 개념을 사용하면 테스트 프로젝트에 적용될 기본 구성 및 확장 집합을 선택할 수 있습니다.
다음 세 가지 프로필 중 하나와 함께 TestingExtensionsProfile
속성을 사용하여 프로필을 설정할 수 있습니다.
Default
- 이 버전의 MSTest.SDK에 권장되는 확장을 사용하도록 설정합니다. 속성이 명시적으로 설정되지 않은 경우 이는 기본값입니다.None
- 사용하도록 설정된 확장이 없습니다.AllMicrosoft
- Microsoft에서 제공한 모든 확장(제한적인 라이선스가 있는 확장 포함)을 사용하도록 설정합니다.
다음은 None
프로필을 사용한 전체 예입니다.
<Project Sdk="MSTest.Sdk/3.3.1">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TestingExtensionsProfile>None</TestingExtensionsProfile>
</PropertyGroup>
<!-- references to the code to test -->
</Project>
확장 사용 또는 사용 안 함
확장은 Enable[NugetPackageNameWithoutDots]
패턴을 사용하여 MSBuild 속성으로 사용 및 사용하지 않도록 설정할 수 있습니다.
예를 들어, 크래시 덤프 확장(NuGet 패키지 Microsoft.Testing.Extensions.CrashDump)을 사용하도록 설정하려면 true
로 설정된 다음 EnableMicrosoftTestingExtensionsCrashDump
속성을 사용할 수 있습니다.
<Project Sdk="MSTest.Sdk/3.3.1">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<EnableMicrosoftTestingExtensionsCrashDump>true</EnableMicrosoftTestingExtensionsCrashDump>
</PropertyGroup>
<!-- references to the code to test -->
</Project>
이 페이지에는 사용 가능한 모든 확장이 나열되어 있습니다.
Warning
각 확장에 대한 라이선스 사용 약관은 다를 수 있으므로 검토하시기 바랍니다.
사용 및 사용하지 않도록 설정된 확장은 선택한 확장 프로필에서 제공하는 확장과 결합됩니다.
이는 암시적 Default
프로필 위에 추가 확장을 사용하도록 설정하는 데 사용할 수 있습니다(이전 CrashDumpExtension 예에서 볼 수 있음).
또는 선택한 프로필에서 제공되는 확장을 사용하지 않도록 설정합니다. 이 경우 <EnableMicrosoftTestingExtensionsCodeCoverage>false</EnableMicrosoftTestingExtensionsCodeCoverage>
를 설정하여 MS Code Coverage
확장을 사용하지 않도록 설정합니다.
<Project Sdk="MSTest.Sdk/3.3.1">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<EnableMicrosoftTestingExtensionsCodeCoverage>false</EnableMicrosoftTestingExtensionsCodeCoverage>
</PropertyGroup>
<!-- references to the code to test -->
</Project>
기능
실행기 및 실행기 특정 확장의 선택 외에도 MSTest.Sdk
는 테스트 환경을 단순화하고 향상시키는 추가 기능도 제공합니다.
.NET Aspire
.NET Aspire는 관찰 가능하고 프로덕션 준비가 완료된 분산 애플리케이션을 빌드하기 위한 독보적인 클라우드 지원 스택입니다. .NET Aspire는 특정 클라우드 네이티브 문제를 처리하는 NuGet 패키지 컬렉션을 통해 제공됩니다. 자세한 내용은 .NET Aspire 문서를 참조하세요.
참고 항목
이 기능은 MSTest.Sdk 3.4.0에서 사용할 수 있습니다.
속성 EnableAspireTesting
을 true
로 설정하여 Aspire
및 MSTest
테스트에 필요한 모든 종속성 및 기본 사용을 가져올 수 있습니다.
<Project Sdk="MSTest.Sdk/3.4.0">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<EnableAspireTesting>true</EnableAspireTesting>
</PropertyGroup>
<!-- references to the code to test -->
</Project>
Playwright
Playwright를 사용하면 최신 웹앱에 대해 신뢰할 수 있는 엔드투엔드 테스트를 수행할 수 있습니다. 자세한 내용은 공식 Playwright 문서를 참조하세요.
참고 항목
이 기능은 MSTest.Sdk 3.4.0에서 사용할 수 있습니다.
속성 EnablePlaywright
를 true
로 설정하여 Playwright
및 MSTest
테스트에 필요한 모든 종속성 및 기본 사용을 가져올 수 있습니다.
<Project Sdk="MSTest.Sdk/3.4.0">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<EnablePlaywright>true</EnablePlaywright>
</PropertyGroup>
<!-- references to the code to test -->
</Project>
MSTest SDK로 마이그레이션
기존 MSTest 테스트 프로젝트를 MSTest SDK로 마이그레이션할 때 테스트 프로젝트 상단의 Sdk="Microsoft.NET.Sdk"
항목을 Sdk="MSTest.Sdk/3.3.1"
로 바꾸는 것부터 시작합니다.
Sdk="MSTest.Sdk/3.3.1"
- Sdk="Microsoft.NET.Sdk"
+ Sdk="MSTest.Sdk"
global.json
에 해당 버전을 추가합니다.
{
"msbuild-sdks": {
"MSTest.Sdk": "3.3.1"
}
}
그런 다음 프로젝트 간소화를 시작할 수 있습니다.
기본 속성 제거:
- <EnableMSTestRunner>true</EnableMSTestRunner>
- <OutputType>Exe</OutputType>
- <IsPackable>false</IsPackable>
- <IsTestProject>true</IsTestProject>
기본 패키지 참조 제거:
- <PackageReference Include="MSTest"
- <PackageReference Include="MSTest.TestFramework"
- <PackageReference Include="MSTest.TestAdapter"
- <PackageReference Include="MSTest.Analyzers"
- <PackageReference Include="Microsoft.NET.Test.Sdk"
마지막으로, 사용 중인 확장 프로필에 따라 일부 Microsoft.Testing.Extensions.*
패키지를 제거할 수도 있습니다.
.NET
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기