Visual Studio 테스트 탐색기 FAQ
동적 테스트 검색
테스트 탐색기가 동적으로 정의된 내 테스트를 검색하지 않습니다. (예: 이론, 사용자 지정 어댑터, 사용자 지정 특성, #ifdefs 등) 이러한 테스트를 검색하려면 어떻게 할까요?
어셈블리 기반 검색을 실행하는 프로젝트를 빌드합니다.
실시간 테스트 검색은 소스 기반 테스트 검색입니다. 이론, 사용자 지정 어댑터, 사용자 지정 특성, #ifdef
문 등을 사용하는 테스트는 런타임에 정의되기 때문에 검색할 수 없습니다. 해당 테스트를 정확하게 검색하려면 빌드가 필요합니다. Visual Studio 2017 버전 15.6 이상에서 어셈블리 기반 검색(기존 Discoverer)은 빌드 후에만 실행됩니다. 이 설정은 편집 중에 실시간 테스트 검색이 할 수 있는 만큼 많은 테스트를 검색한 후, 어셈블리 기반 검색을 사용하면 동적으로 정의된 테스트가 빌드 후에 표시되게 할 수 있음을 의미합니다. 실시간 테스트 검색은 응답성을 개선하면서도 여전히 빌드 후에 완전하고 정확한 결과를 얻을 수 있습니다.
테스트 탐색기 ‘+’(더하기) 기호
테스트 탐색기의 맨 윗줄에 표시되는 ‘+’(더하기) 기호는 무엇인가요?
‘+’(더하기) 기호는 어셈블리 기반 검색이 실행되는 경우 빌드 후에 추가 테스트가 검색될 수 있음을 나타냅니다. 이 기호는 동적으로 정의된 테스트가 프로젝트에서 검색되는 경우 표시됩니다.
실시간 테스트 검색
이제 프로젝트를 빌드할 필요 없이 입력하는 동안 테스트 탐색기에 테스트가 나타납니다. 변경 내용
이 기능을 실시간 테스트 검색이라고 합니다. 이 기능은 프로젝트를 빌드하지 않아도 Roslyn 분석기를 사용하여 실시간으로 테스트를 검색하고 테스트 탐색기를 채웁니다. 이론 또는 사용자 지정 특성과 같은 동적으로 정의된 테스트의 테스트 검색 동작에 대한 자세한 내용은 동적 테스트 검색을 참조하세요.
실시간 테스트 검색 호환성
실시간 테스트 검색을 사용할 수 있는 언어 및 테스트 프레임워크는 무엇인가요?
실시간 테스트 검색은 Roslyn 컴파일러를 사용하여 빌드되므로 관리 언어(C# 및 Visual Basic)에서만 작동합니다. 현재 실시간 테스트 검색은 xUnit, NUnit 및 MSTest 프레임워크에서만 작동합니다.
테스트 탐색기 로그
테스트 탐색기에 대한 로그를 켜려면 어떻게 하나요?
도구>옵션>테스트로 이동하고 거기서 로깅 섹션을 찾습니다.
UWP 테스트 검색
UWP 프로젝트의 내 테스트가 내 앱을 배포할 때까지 검색되지 않는 이유는 무엇인가요?
UWP 테스트는 앱이 배포될 때 서로 다른 런타임을 대상으로 합니다. 따라서 UWP 프로젝트에 대해 정확히 테스트를 검색하려면 프로젝트를 빌드할 뿐만 아니라 배포도 해야 합니다.
테스트 탐색기 정렬
계층 보기에서 테스트 결과 정렬은 어떻게 작동하나요?
계층 보기는 테스트를 결과에 의해서가 아니라 알파벳순으로 정렬합니다. 이전 그룹화 기준 설정은 테스트 결과를 결과별로 정렬한 다음, 사전순으로 정렬합니다. 테스트 탐색기에서 열 헤더를 마우스 오른쪽 단추로 클릭하고, 상태 열을 사용하도록 설정한 다음, 상태 열 헤더를 클릭하여 해당 열에서 정렬을 적용하면 계속 결과별로 정렬할 수 있습니다. 이 GitHub 문제의 디자인에 관한 피드백을 제공할 수 있습니다.
테스트 탐색기 계층 구조 보기
계층 구조 보기에서 부모 노드 그룹 옆에는 통과, 실패, 건너뜀 및 실행 안 됨 아이콘이 있습니다. 이러한 아이콘은 무엇을 의미하나요?
프로젝트, 네임스페이스, 클래스 그룹 옆의 아이콘은 해당 그룹 내의 테스트 상태를 보여줍니다. 다음 데이블을 참조하세요.
파일 경로 검색
테스트 탐색기 검색 상자에 “파일 경로” 필터가 더 이상 존재하지 않습니다.
테스트 탐색기 검색 상자의 파일 경로 필터는 Visual Studio 2017 버전 15.7에서 제거되었습니다. 이 기능은 사용량이 낮으므로, 테스트 탐색기는 이 기능을 제외하여 테스트 메서드를 빠르게 검색할 수 있습니다. 이 변경이 개발 흐름을 방해하는 경우 개발자 커뮤니티에 피드백을 제출하여 알려주세요.
문서화되지 않은 인터페이스 제거
몇 가지 테스트 관련 API는 더 이상 Visual Studio 2019에 없습니다. 변경 내용
Visual Studio 2019에서는 이전에 공개로 표시되었지만 공식적으로 문서화되지 않은 일부 테스트 창 API는 제거됩니다. 확장 유지 관리자에게 조기 경고를 주기 위해 Visual Studio 2017에서는 "사용 중단"으로 표시되었습니다. 우리가 아는 한, 이러한 API를 발견한 확장은 거의 없었고 Visual Studio에 의존적이었습니다. 여기에는 IGroupByProvider
, IGroupByProvider<T>
, KeyComparer
, ISearchFilter
, ISearchFilterToken
, ISearchToken
및 SearchFilterTokenType
이 포함됩니다. 이 변경이 확장에 영향을 주는 경우 개발자 커뮤니티에 버그를 제출하여 알려주세요.
테스트 어댑터 NuGet 참조
Visual Studio 2017 버전 15.8에서 테스트가 검색되지만 실행되지 않습니다.
모든 테스트 프로젝트는 .csproj 파일에 .NET 테스트 어댑터 NuGet 참조를 포함해야 합니다. 그렇지 않으면 빌드 후 테스트 어댑터 확장이 검색을 시작하거나 사용자가 선택한 테스트를 실행하려고 시도할 때 다음 테스트 출력이 프로젝트에 표시됩니다.
테스트 프로젝트 {}에서 .NET NuGet 어댑터를 참조하지 않습니다. 이 프로젝트에서는 테스트 검색 또는 실행이 작동하지 않을 수 있습니다. 솔루션의 각 .NET 테스트 프로젝트에서 NuGet 테스트 어댑터를 참조하는 것이 좋습니다.
테스트 어댑터 확장을 사용하는 대신, 프로젝트에 테스트 어댑터 NuGet 패키지를 사용해야 합니다. 이 요구 사항은 성능을 크게 향상시키고 연속 통합 관련 문제를 감소시킵니다. 릴리스 정보에서 .NET 테스트 어댑터 확장 사용 중단에 대해 자세히 알아보세요.
UWP TestContainer를 찾지 못했습니다.
내 UWP 테스트가 Visual Studio 2017 버전 15.7 이상에서 더 이상 실행되지 않습니다.
최근의 UWP 테스트 프로젝트는 테스트 앱을 식별하는 더 나은 성능을 제공할 수 있는 테스트 플랫폼 빌드 속성을 지정합니다. Visual Studio 버전 15.7 이전에 초기화된 UWP 테스트 프로젝트가 있는 경우 이 오류가 출력>테스트에 표시될 수 있습니다.
System.AggregateException: 하나 이상의 오류가 발생했습니다. ---> System.InvalidOperationException: {}Microsoft.VisualStudio.TestWindow.Controller.TestContainerProvider <GetTestContainerAsync>d__61.MoveNext()에서 다음 TestContainer를 찾을 수 없습니다
이 오류를 해결하려면
- 다음 코드를 사용하여 테스트 프로젝트 빌드 속성을 업데이트합니다.
<UnitTestPlatformVersion Condition="'$(UnitTestPlatformVersion)' == ''">$(VisualStudioVersion)</UnitTestPlatformVersion>
- 다음 코드를 사용하여 TestPlatform SDK 버전을 업데이트합니다.
<SDKReference Include="TestPlatform.Universal, Version=$(UnitTestPlatformVersion)" />
미리 보기 기능 사용
Visual Studio 2019에서는 도구 > 옵션 > 환경 > 미리 보기 기능에서 미리 보기 기능을 선택할 수 있습니다.