Visual Studio 테스트 탐색기 FAQ
동적 테스트 검색
테스트 탐색기는 동적으로 정의된 내 테스트(예: 이론, 사용자 지정 어댑터, 사용자 지정 특성 및 #ifdef 문)를 검색하지 않습니다. 어떻게 하면 이러한 테스트를 발견할 수 있을까요?
어셈블리 기반 검색을 실행하는 프로젝트를 빌드합니다.
실시간 테스트 검색 원본 기반 테스트 검색입니다. 이론, 사용자 지정 어댑터, 사용자 지정 특성, #ifdef
문 등을 사용하는 테스트는 런타임에 정의되므로 검색할 수 없습니다. 이러한 테스트를 정확하게 검색하려면 빌드가 필요합니다.
Visual Studio 2017 버전 15.6 이상에서는 빌드 후에만 어셈블리 기반 검색(기존 검색자)이 실행됩니다. 이 설정은 여러분이 편집하는 동안 실시간 테스트 검색이 가능한 한 많은 테스트를 찾아내도록 합니다. 어셈블리 기반 검색을 사용하면 빌드 후에 동적으로 정의된 테스트가 나타날 수 있습니다.
실시간 테스트 검색은 응답성을 향상하지만 빌드 후에도 완전하고 정확한 결과를 얻을 수 있습니다.
테스트 탐색기 및 (+) 기호
테스트 탐색기의 위쪽 줄에 표시되는 더하기 기호는 무엇을 의미하나요?
더하기(+) 기호는 어셈블리 기반 검색이 실행될 때 빌드 후에 더 많은 테스트가 검색될 수 있음을 나타냅니다. 프로젝트에서 동적으로 정의된 테스트가 검색되면 이 기호가 나타납니다.
실시간 테스트 검색
이제 프로젝트를 빌드할 필요 없이 입력하는 동안 테스트 탐색기에 테스트가 표시됩니다. 무엇이 변경된가요?
이 기능은 실시간 테스트 검색이라고 호출됩니다. Roslyn 분석기를 사용하여 프로젝트를 빌드할 필요 없이 테스트를 찾고 테스트 탐색기를 실시간으로 채웁니다. 이론 또는 사용자 지정 특성과 같이 동적으로 정의된 테스트에 대한 테스트 검색 동작에 대한 자세한 내용은 이 문서의 앞부분에서 동적 테스트 검색 참조하세요.
실시간 테스트 검색에 대한 호환성
실시간 테스트 검색을 사용할 수 있는 언어 및 테스트 프레임워크는 무엇인가요?
실시간 테스트 검색 관리되는 언어(C# 및 Visual Basic)에서만 작동합니다. 이는 Roslyn 컴파일러를 통해 빌드되기 때문입니다. 현재 실시간 테스트 검색은 xUnit, NUnit 및 MSTest 프레임워크에 대해서만 작동합니다.
테스트 탐색기 로그
테스트 탐색기에 대한 로그를 켜려면 어떻게 해야 하나요?
도구>옵션>테스트 으로 가서 로깅 섹션을 찾습니다.
UWP 테스트 검색
앱을 배포할 때까지 UWP 프로젝트에서 내 테스트가 검색되지 않는 이유는 무엇인가요?
UWP(유니버설 Windows 플랫폼) 테스트는 앱이 배포될 때 다른 런타임을 대상으로 합니다. UWP 프로젝트에 대한 테스트를 정확하게 찾으려면 프로젝트를 빌드할 뿐만 아니라 배포해야 합니다.
테스트 탐색기 정렬
계층 구조 보기에서 정렬 테스트 결과는 어떻게 작동하나요?
계층 구조 뷰는 결과가 아닌 사전순으로 테스트를 정렬합니다. 이전 그룹화 설정은 테스트 결과를 결과별로 정렬한 다음, 다시 사전순으로 정렬했습니다. 테스트 탐색기에서 열 머리글을 오른쪽 클릭하고, 상태 열을 사용하도록 설정한 다음, State 열 머리글을 선택함으로써 해당 열에 정렬을 적용하여 결과 기준으로 정렬할 수 있습니다. GitHub 이슈에서 디자인
테스트 탐색기 계층 구조 보기
계층 구조 뷰에서는 부모 노드 그룹화 옆에 통과, 실패, 건너뛰기 및 미실행 아이콘이 있습니다. 이러한 아이콘은 무엇을 의미합니까?
Project, 네임스페이스및 클래스 그룹화 옆에 있는 아이콘은 각 그룹화 내의 테스트 상태를 표시합니다. 다음 표를 참조하세요.
파일 경로별 검색
테스트 탐색기 검색 상자에 파일 경로 필터가 더 이상 없는 이유는 무엇인가요?
테스트 탐색기 검색 상자의 파일 경로 필터가 Visual Studio 2017 버전 15.7에서 제거되었습니다. 이 기능의 사용량이 적었으며, 이 기능을 삭제함으로써 테스트 탐색기가 테스트 메서드를 더 빠르게 검색할 수 있습니다. 이 변경으로 인해 개발 흐름이 방해받는 경우, 개발자 커뮤니티에 피드백을 제출하여 저희에게 알려주세요.
문서화되지 않은 인터페이스 제거
일부 테스트 관련 API는 Visual Studio 2019에 더 이상 존재하지 않습니다. 무엇이 변경된가요?
Visual Studio 2019에서는 이전에 공용으로 표시되었지만 공식적으로 문서화되지 않은 일부 테스트 창 API가 제거됩니다. 확장 유지 관리자에게 조기 경고를 제공하기 위해 Visual Studio 2017에서 더 이상 사용되지 않는 것으로 표시되었습니다. 우리의 지식으로는 이 API에 의존하는 확장은 거의 없습니다. 여기에는 IGroupByProvider
, IGroupByProvider<T>
, KeyComparer
, ISearchFilter
, ISearchFilterToken
, ISearchToken
및 SearchFilterTokenType
포함합니다.
이 변경 내용이 확장에 영향을 미치는 경우 개발자 커뮤니티버그를 제출하여 알려주세요.
테스트 어댑터 NuGet 참조
내 테스트가 발견되었는데도 Visual Studio 2017 버전 15.8에서 실행되지 않는 이유는 무엇인가요?
모든 테스트 프로젝트는 .csproj 파일에 .NET 테스트 어댑터 NuGet 참조를 포함해야 합니다. 만약 그렇게 하지 않으면, 빌드 후 테스트 어댑터 확장에 의한 검색이 시작되거나 선택한 테스트를 실행하려고 할 때 다음 테스트 출력이 프로젝트에 나타납니다.
테스트 프로젝트 {} .NET NuGet 어댑터를 참조하지 않습니다. 이 프로젝트에 대해 테스트 검색 또는 실행이 작동하지 않을 수 있습니다. 솔루션의 각 .NET 테스트 프로젝트에서 NuGet 테스트 어댑터를 참조하는 것이 좋습니다.
프로젝트는 테스트 어댑터 확장 대신 테스트 어댑터 NuGet 패키지를 사용해야 합니다. 이 요구 사항은 성능을 크게 향상시키고 연속 통합에 대한 문제를 줄입니다.
UWP TestContainer를 찾을 수 없음
Visual Studio 2017 버전 15.7 이상에서 UWP 테스트가 더 이상 실행되지 않는 이유는 무엇인가요?
최근 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에서 미리 보기 기능을 어떻게 사용할 수 있나요?
Visual Studio 2019에서는 도구>옵션>환경>미리 보기 기능기능을 미리 보기하도록 옵트인할 수 있습니다.
관련 콘텐츠
- Microsoft.VisualStudio.TestTools.UnitTesting
- 기존 코드 대한 단위 테스트 만들기 및 실행
- 코드를 단위 테스트하세요
- 라이브 단위 테스트 대한
FAQ