VSTest 브리지 확장
이 확장은 VSTest와의 호환성 계층을 제공하여 이에 의존하는 테스트 프레임워크가 VSTest 모드에서 계속 실행되도록 지원합니다(vstest.console.exe
, AzDo의 경우 일반적으로 dotnet test
, 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을 사용합니다. | Microsoft.Testing.Platform을 MSBuild와 함께 사용하는 경우 이 옵션은 MSBuild로 오프로드됩니다. 단일 실행 파일이 실행되면 이 옵션은 Microsoft.Testing.Platform에 의미가 없습니다. |
ResultsDirectory | 테스트 결과가 배치될 디렉터리입니다. 경로는 .runsettings 파일이 포함된 디렉터리를 기준으로 합니다. | 테스트 결과가 저장될 디렉터리를 결정하려면 명령줄 옵션 --results-directory 를 사용합니다. 지정한 디렉터리가 없으면 생성됩니다. 테스트 애플리케이션이 포함된 디렉터리의 기본값은 TestResults 입니다. |
TargetFrameworkVersion | 이 설정은 테스트를 실행하는 데 사용할 프레임워크 버전 또는 프레임워크 패밀리를 정의합니다. | 이 옵션은 무시됩니다. <TargetFramework> 또는 <TargetFrameworks> MSBuild 속성은 애플리케이션의 대상 프레임워크를 결정합니다. 테스트는 최종 애플리케이션에서 호스트됩니다. |
TargetPlatform | 이 설정은 테스트를 실행하는 데 사용할 아키텍처를 정의합니다. | <RuntimeIdentifier> 는 테스트를 호스팅하는 최종 애플리케이션의 아키텍처를 결정합니다. |
TreatTestAdapterErrorsAsWarnings | 경고가 되도록 테스트 어댑터 오류를 억제합니다. | Microsoft.Testing.Platform은 단일 어셈블리에서 한 가지 형식의 테스트만 실행할 수 있도록 허용하며, 일부 테스트를 발견하거나 실행할 수 없음을 의미하므로 테스트 프레임워크 또는 인프라의 다른 부분을 로드하지 못하면 건너뛸 수 없는 오류가 됩니다. |
TestAdaptersPaths | TestAdapters가 있는 디렉터리에 대한 하나 이상의 경로 | Microsoft.Testing.Platform은 테스트 어댑터 개념을 사용하지 않으며 빌드의 일부가 아니고 빌드 대상을 통해 자동으로 또는 수동으로 Program.cs 에 등록되지 않는 한 확장의 동적 로드를 허용하지 않습니다. |
TestCaseFilter | 실행될 테스트를 제한하는 필터입니다. | 테스트를 필터링하려면 --filter 명령줄 옵션을 사용합니다. |
TestSessionTimeout | 사용자가 지정된 시간 제한을 초과하는 테스트 세션을 종료할 수 있도록 합니다. | 대체 옵션이 없습니다. |
DotnetHostPath | testhost를 실행하는 데 사용되는 dotnet 호스트의 사용자 지정 경로를 지정합니다. | Microsoft.Testing.Platform은 dotnet을 추가로 확인하지 않습니다. 이는 dotnet이 자체적으로 해결하는 방법에 전적으로 의존하며, 이는 DOTNET_HOST_PATH 와 같은 환경 변수로 제어할 수 있습니다. |
TreatNoTestsAsError | 테스트가 발견되지 않으면 0이 아닌 종료 코드로 종료됩니다. | Microsoft.Testing.Platform은 테스트 애플리케이션에서 테스트가 발견되거나 실행되지 않으면 기본적으로 오류가 발생합니다. 기본값은 1인 --minimum-expected-tests 명령줄 매개 변수를 사용하여 어셈블리에서 찾을 것으로 예상되는 테스트 수를 설정할 수 있습니다. |
DataCollectors 요소
Microsoft.Testing.Platform
은 데이터 수집기를 사용하고 있지 않습니다. 대신에 In-process 및 out-of-process 확장 개념이 있습니다. 각 확장은 해당 구성 파일이나 명령줄을 통해 구성됩니다.
가장 중요한 것은 정지 및 크래시 확장과 코드 검사 확장입니다.
LoggerRunSettings 요소
Microsoft.Testing.Platform
의 로거는 명령줄 매개 변수 또는 코드 설정을 통해 구성됩니다.
VSTest 필터 지원
또한 이 확장은 VSTest 필터링 메커니즘을 사용하여 필터 식과 일치하는 테스트만 검색하거나 실행하는 기능도 제공합니다. 자세한 내용은 필터 옵션 세부 정보 섹션을 참조하고, 프레임워크별 세부 정보는 선택적 단위 테스트 실행 페이지를 참조하세요.
테스트 프레임워크에서 사용하도록 설정하면 --filter <FILTER_EXPRESSION>
을 사용할 수 있습니다.
.NET