이 확장은 VSTest와 호환성 계층을 제공하여 VSTest 모드(vstest.console.exe
, 일반적인 dotnet test
, AzDo의 VSTest task
, Visual Studio의 테스트 탐색기 및 Visual Studio Code...)에서 계속 실행할 수 있도록 테스트 프레임워크를 허용합니다. 이 확장은 Microsoft.Testing.Extensions.VSTestBridge 패키지의 일부로 제공됩니다.
VSTest와의 호환성
이 확장의 주요 목적은 새 플랫폼이 사용하도록 설정된 이중 모드를 허용하고 일반적인 워크플로가 계속 작동할 수 있도록 호환성 모드를 제공하여 VSTest 사용자에게 쉽고 원활한 업그레이드 환경을 제공하는 것입니다.
실행 설정 지원
이 확장을 사용하면 VSTest .runsettings 파일제공할 수 있지만 이 파일의 모든 옵션이 플랫폼에서 선택되는 것은 아닙니다. 아래에서 지원되는 설정과 지원되지 않는 설정, 구성 옵션 및 가장 많이 사용되는 VSTest 구성 옵션에 대한 대안을 설명합니다.
테스트 프레임워크에서 사용하도록 설정하면 --settings <SETTINGS_FILE>
사용하여 .runsettings
파일을 제공할 수 있습니다.
RunConfiguration 요소
다음 RunConfiguration 요소는 Microsoft.Testing.Platform
지원되지 않습니다.
노드 | 설명 | 이유/해결 방법 |
---|---|---|
MaxCpuCount | 이 설정은 프로세스 수준에서 병렬 처리 수준을 제어합니다. 최대 프로세스 수준 병렬 처리를 사용하려면 0을 사용합니다. | MSBuild에서 Microsoft.Testing.Platform을 사용하는 경우, 이 옵션은 MSBuild에 오프로드됩니다. 단일 실행 파일이 실행되면 이 옵션은 Microsoft.Testing.Platform에 아무런 의미가 없습니다. |
결과 디렉토리 | 테스트 결과가 배치되는 디렉터리입니다. 경로는 .runsettings 파일이 포함된 디렉터리를 기준으로 합니다. | 명령줄 옵션 --results-directory 사용하여 테스트 결과가 배치될 디렉터리를 결정합니다. 지정된 디렉터리가 없으면 생성됩니다. 기본값은 테스트 애플리케이션을 포함하는 디렉터리에 TestResults . |
TargetFrameworkVersion | 이 설정은 테스트를 실행하는 데 사용할 프레임워크 버전 또는 프레임워크 패밀리를 정의합니다. | 이 옵션은 무시됩니다.
<TargetFramework> 또는 <TargetFrameworks> MSBuild 속성은 애플리케이션의 대상 프레임워크를 결정합니다. 테스트는 최종 애플리케이션에서 호스트됩니다. |
대상 플랫폼 | 이 설정은 테스트를 실행하는 데 사용할 아키텍처를 정의합니다. |
<RuntimeIdentifier> 테스트를 호스트하는 최종 애플리케이션의 아키텍처를 결정합니다. |
테스트 어댑터 오류를 경고로 처리 | 테스트 어댑터 오류를 경고로 변환합니다. | Microsoft.Testing.Platform은 단일 어셈블리에서 한 가지 유형의 테스트만 실행할 수 있도록 허용하며, 일부 테스트를 검색하거나 실행할 수 없음을 의미하기 때문에 테스트 프레임워크 또는 인프라의 다른 부분을 로드하지 않으면 건너뛸 수 없는 오류가 발생합니다. |
TestAdaptersPaths | TestAdapters가 있는 디렉터리에 대한 하나 이상의 경로 | Microsoft.Testing.Platform은 테스트 어댑터의 개념을 사용하지 않으며 빌드에 속하지 않고 빌드 대상을 통해 자동으로 또는 수동으로 Program.cs 등록되지 않는 한 확장의 동적 로드를 허용하지 않습니다. |
TestCaseFilter | 실행할 테스트를 제한하는 필터입니다. | v1.6부터 이 runsettings 항목이 지원됩니다. 이 버전 이전에는 --filter 명령줄 옵션을 대신 사용해야 합니다. |
testSessionTimeout | 사용자가 지정된 시간 제한을 초과하면 테스트 세션을 종료할 수 있습니다. | 다른 옵션은 없습니다. |
dotnetHostPath | 테스트 호스트를 실행하는 데 사용되는 dotnet 호스트에 대한 사용자 지정 경로를 지정합니다. | Microsoft.Testing.Platform은 dotnet의 추가 해결을 수행하지 않습니다.
DOTNET_HOST_PATH 같은 환경 변수에 의해 제어될 수 있는 dotnet이 자체적으로 어떻게 해결되는지에 따라 완전히 달라집니다. |
테스트 없음 오류로 처리 | 테스트가 검색되지 않은 경우 0이 아닌 종료 코드로 종료합니다. | 테스트 애플리케이션에서 테스트가 검색되거나 실행되지 않으면 기본적으로 Microsoft.Testing.Platform에서 오류가 발생합니다. 기본값이 1인 --minimum-expected-tests 명령줄 매개 변수를 사용하여 어셈블리에서 찾을 것으로 예상되는 테스트 수를 설정할 수 있습니다. |
DataCollectors 요소
Microsoft.Testing.Platform
데이터 수집기를 사용하지 않습니다. 대신 내부 및 외부 프로세스 확장 기능의 개념을 가지고 있습니다. 각 확장은 해당 구성 파일 또는 명령줄을 통해 구성됩니다.
가장 중요한 중단 및 크래시 익스텐션과 코드 검사 익스텐션입니다.
LoggerRunSettings 요소
Microsoft.Testing.Platform
로거는 명령줄 매개 변수 또는 코드의 설정을 통해 구성됩니다.
VSTest 필터 지원
또한 이 확장은 VSTest 필터링 메커니즘을 사용하여 필터 식과 일치하는 테스트만 검색하거나 실행하는 기능을 제공합니다. 자세한 내용은 필터 옵션 세부 정보 섹션을 참조하거나 프레임워크 관련 세부 정보는 선택적 단위 테스트 실행 페이지를 참조하세요.
테스트 프레임워크에서 사용하도록 설정한 경우 --filter <FILTER_EXPRESSION>
사용할 수 있습니다.
TestRun 매개 변수
--test-parameter
형식의 key=value
명령줄 옵션을 사용하여 테스트 실행에 매개 변수를 전달할 수 있습니다. 이 옵션은 설정할 각 매개 변수에 대해 하나씩 여러 번 지정할 수 있습니다.
그런 다음 테스트 실행에서 테스트 프레임워크에서 이러한 매개 변수에 액세스할 수 있습니다.
- MSTest의 경우 Properties 사용
- NUnit의 경우 testContext.TestParameters 사용합니다.
.NET