테스트 탐색기를 사용하여 단위 테스트 실행
테스트 탐색기를 사용하여 Visual Studio 또는 타사 단위 테스트 프로젝트에서 단위 테스트를 실행합니다. 테스트 탐색기에서 테스트를 범주로 그룹화하고, 테스트 목록을 필터링하고, 테스트 재생 목록을 만들고, 저장하고, 실행할 수 있습니다. 테스트 탐색기를 사용하여 디버그 단위 테스트를 Visual Studio Enterprise에서 코드 검사 분석할 수도 있습니다.
테스트 탐색기는 솔루션의 여러 테스트 프로젝트와 프로덕션 코드 프로젝트의 일부인 테스트 클래스에서 테스트를 실행할 수 있습니다. 테스트 프로젝트는 다양한 단위 테스트 프레임워크를 사용할 수 있습니다. 테스트 중인 코드가 .NET용으로 작성되면 대상 코드의 언어에 관계없이 .NET을 대상으로 하는 모든 언어로 테스트 프로젝트를 작성할 수 있습니다. C++ 단위 테스트 프레임워크를 사용하여 네이티브 C 및 C++ 코드 프로젝트를 테스트해야 합니다.
테스트 프로젝트 빌드
Visual Studio 솔루션에 테스트 프로젝트를 아직 설정하지 않은 경우 먼저 테스트 프로젝트를 만들고 빌드해야 합니다. 다음 리소스를 사용합니다.
- .NET 단위 테스트 시작하기
- C/C++ 대한 단위 테스트 작성
Visual Studio에는 관리 코드와 네이티브 코드 모두에 대한 Microsoft 단위 테스트 프레임워크가 포함되어 있습니다. 그러나 테스트 탐색기는 테스트 탐색기 어댑터를 구현한 모든 단위 테스트 프레임워크를 실행할 수도 있습니다. 타사 단위 테스트 프레임워크 설치에 대한 자세한 내용은 단위 테스트 프레임워크 설치참조하세요.
테스트 탐색기에서 테스트 실행
테스트 프로젝트를 빌드하면 테스트 탐색기에 테스트가 표시됩니다. 테스트 탐색기가 표시되지 않으면 Visual Studio 메뉴에서 테스트 선택한 다음 테스트 탐색기 선택합니다(또는 Ctrl+E, T 선택).
테스트를 실행, 쓰기 및 다시 실행할 때 테스트 탐색기는 Project, 네임스페이스및 클래스기본 그룹화하여 결과를 표시합니다. 테스트 탐색기에서 테스트를 그룹화하는 방식을 변경할 수 있습니다.
테스트 탐색기 도구 모음에서 테스트를 찾고 구성하고 실행하는 대부분의 작업을 수행할 수 있습니다.
테스트 실행
테스트를 실행하기 위한 다음 옵션 중 하나를 선택합니다.
솔루션에서 모든 테스트를 실행하려면 실행 아이콘을 선택합니다(또는 Ctrl+R, V 선택).
기본 그룹에서 모든 테스트를 실행하려면 실행 아이콘을 선택한 다음 메뉴에서 그룹을 선택합니다.
개별 테스트를 실행하려면 하나 이상의 테스트를 선택하고 창의 어딘가를 마우스 오른쪽 단추로 클릭한 다음 선택한 테스트 실행(또는 Ctrl+R, T 선택)을 선택합니다.
개별 테스트에 순서대로 실행되지 않도록 하는 종속성이 없는 경우 도구 모음의 설정 메뉴에서 병렬 테스트 실행을 켭니다. 이 작업을 수행하면 모든 테스트를 실행하는 시간을 줄일 수 있습니다.
메모
단위 테스트를 실행하기 위한 대상 플랫폼(프로세스 아키텍처)을 구성하려면 단위 테스트대한 프로세스 아키텍처 구성을 참조하세요.
모든 빌드 후 테스트 실행
각 로컬 빌드 후 단위 테스트를 실행하려면 테스트 탐색기 도구 모음에서 설정 아이콘을 선택한 다음 빌드 후테스트 실행을 선택합니다.
테스트 결과 보기
테스트를 실행, 쓰기 및 다시 실행할 때 테스트 탐색기는 실패한 테스트, 통과한 테스트, 건너뛴 테스트및 테스트 실행 안 됨그룹에 결과를 표시합니다. 테스트 탐색기의 아래쪽 또는 측면에 있는 세부 정보 창에 테스트 실행 요약이 표시됩니다.
테스트 세부 정보 보기
개별 테스트의 세부 정보를 보려면 테스트를 선택합니다.
테스트 세부 정보 창에 다음이 표시됩니다.
소스 파일 이름 및 테스트 메서드의 줄 번호입니다.
테스트의 상태입니다.
테스트 메서드를 실행하는 데 걸린 경과된 시간입니다.
테스트에 실패하면 세부 정보 창도 표시됩니다.
단위 테스트 프레임워크가 테스트에 대해 반환하는 메시지입니다.
테스트가 실패한 시점의 스택 추적입니다.
테스트 메서드의 소스 코드 보기
Visual Studio 편집기에서 테스트 메서드의 소스 코드를 표시하려면 테스트를 마우스 오른쪽 단추로 클릭한 다음 테스트 열기(또는 F12 키 선택)를 선택합니다.
테스트 목록 그룹화 및 필터링
테스트 탐색기에서 테스트를 미리 정의된 범주로 그룹화할 수 있습니다. 테스트 탐색기에서 실행되는 대부분의 단위 테스트 프레임워크를 사용하면 고유한 범주와 범주/값 쌍을 정의하여 테스트를 그룹화할 수 있습니다. 테스트 속성과 문자열을 일치시켜 테스트 목록을 필터링할 수도 있습니다.
테스트 목록의 테스트 그룹화
테스트 탐색기를 사용하면 테스트를 계층 구조로 그룹화할 수 있습니다. 기본 계층 그룹화는 프로젝트, 네임스페이스, 그다음 클래스입니다. 테스트 구성 방식을 변경하려면 테스트 탐색기 그룹 단추Test Explorer group button 그룹화 단추를 선택한 다음 새 그룹화 조건을 선택합니다.
원하는 순서로 Group By 옵션을 선택하여, State 및 클래스로 그룹화하여 사용자 정의 계층 수준을 정의할 수 있습니다.
테스트 탐색기를 사용하면 테스트를 계층 구조로 그룹화할 수 있습니다. 기본 계층 그룹화는 프로젝트, 네임스페이스, 그다음 클래스입니다. 테스트 구성 방식을 변경하려면 테스트 탐색기 그룹 단추Test Explorer group button 그룹화 단추를 선택한 다음 새 그룹화 조건을 선택합니다.
원하는 순서로 Group By 옵션을 선택하여, State 및 클래스로 그룹화하여 사용자 정의 계층 수준을 정의할 수 있습니다.
테스트 탐색기 그룹
그룹 | 묘사 |
---|---|
기간 | 실행 시간별로 테스트 그룹화: 빠른, 중간, 느린. |
State | 실행 결과별로 테스트 그룹화: 실패한 테스트, 건너뛴 테스트, 통과한 테스트, 실행되지 않음. |
대상 프레임워크 | 프로젝트가 대상으로 하는 프레임워크별로 테스트를 그룹화합니다. |
네임스페이스 | 포함하는 네임스페이스별로 테스트를 그룹화합니다. |
프로젝트 | 포함된 프로젝트별로 테스트를 그룹화합니다. |
클래스 | 포함하는 클래스별로 테스트를 그룹화합니다. |
특성
특성은 일반적으로 범주 이름/값 쌍이지만 단일 범주일 수도 있습니다. 단위 테스트 프레임워크가 테스트 메서드로 식별하는 메서드에 특성을 할당할 수 있습니다.
단위 테스트 프레임워크는 특성 범주를 정의할 수 있습니다. 특성 범주에 값을 추가하여 고유한 범주 이름/값 쌍을 정의할 수 있습니다. 단위 테스트 프레임워크는 특성 범주 및 값을 지정하는 구문을 정의합니다.
관리 코드용 Microsoft 단위 테스트 프레임워크의 특성
관리 코드용 Microsoft Unit Testing Framework에서 TestPropertyAttribute 특성에 특성 이름/값 쌍을 정의합니다. 또한 테스트 프레임워크에는 다음과 같은 미리 정의된 특성이 포함되어 있습니다.
특징 | 묘사 |
---|---|
OwnerAttribute |
Owner 범주는 단위 테스트 프레임워크에 의해 정의되며 소유자의 문자열 값을 제공해야 합니다. |
PriorityAttribute |
Priority 범주는 단위 테스트 프레임워크에 의해 정의되며 우선 순위의 정수 값을 제공해야 합니다. |
TestCategoryAttribute |
TestCategory 특성을 사용하면 단위 테스트의 범주를 지정할 수 있습니다. |
TestPropertyAttribute |
TestProperty 특성을 사용하면 특성 범주/값 쌍을 정의할 수 있습니다. |
C++용 Microsoft 단위 테스트 프레임워크의 특성
Visual Studio C++용 Microsoft 단위 테스트 프레임워크 사용참조하세요.
사용자 지정 재생 목록 만들기
실행하거나 그룹으로 보려는 테스트 목록을 만들고 저장할 수 있습니다. 재생 목록을 선택하면 목록의 테스트가 새 테스트 탐색기 탭에 표시됩니다. 둘 이상의 재생 목록에 테스트를 추가할 수 있습니다.
재생 목록을 만들려면 다음을 수행합니다.
- 테스트 탐색기에서 하나 이상의 테스트를 선택합니다.
- 창의 어딘가에 있는 위치를 마우스 오른쪽 단추로 클릭하고 재생 목록에 추가 가리킨 다음 새 재생 목록 선택합니다.
재생 목록을 만들기 위한 선택 항목을 보여 주는
재생 목록이 새 테스트 탐색기 탭에서 열립니다. 이 재생 목록을 한 번 사용한 다음 삭제할 수 있습니다. 또는 재생 목록 창의 도구 모음에서 저장 단추를 선택한 다음 재생 목록을 저장할 이름과 위치를 선택할 수 있습니다.
재생 목록을 열려면 다음을 수행합니다.
- Visual Studio 도구 모음에서 재생 목록 아이콘을 선택합니다.
- 메뉴에서 이전에 저장된 재생 목록 파일을 선택합니다.
재생 목록을 편집하려면 다음 옵션 중 하나를 사용합니다.
테스트를 마우스 오른쪽 단추로 클릭한 다음 메뉴 명령을 사용하여 재생 목록에서 추가하거나 제거합니다.
도구 모음에서 재생 목록 편집 단추를 선택합니다. 테스트 옆에 표시되는 확인란은 재생 목록에 포함되고 제외된 테스트를 보여 줍니다. 원하는 대로 그룹을 편집합니다. 이 기능은 Visual Studio 2019 버전 16.7에서 시작되었습니다.
도구 모음의 재생 목록 편집 단추를 보여 주는
계층 구조에서 부모 그룹에 대한 상자를 선택하거나 지울 수도 있습니다. 이 작업은 해당 그룹에 있는 테스트에 따라 재생 목록을 항상 업데이트하는 동적 재생 목록을 만듭니다.
예를 들어 클래스 옆에 있는 확인란을 선택하면 해당 클래스에서 추가된 모든 테스트가 이 재생 목록의 일부가 됩니다. 해당 클래스에서 테스트를 삭제하면 재생 목록에서 제거됩니다.
도구 모음의 저장 단추를 통해 재생 목록을 저장한 다음 디스크에 생성된 .playlist XML 파일을 열어 규칙에 대해 자세히 알아볼 수 있습니다. 이 파일에는 재생 목록을 구성하는 모든 규칙 및 개별 테스트가 나열됩니다.
재생 목록 XML 파일의 내용을 보여 주는
특성에 대한 재생 목록을 만들려면 MSTest 프레임워크에 다음 형식을 사용합니다.
<Playlist Version="2.0">
<Rule Name="Includes" Match="Any">
<Property Name="Trait" Value="SchemaUpdateBasic" />
</Rule>
</Playlist>
xUnit 프레임워크에 대해 다음 형식을 사용합니다.
TestCategory
이름과 [Value]
값 사이에 공백이 있는지 확인합니다.
<Playlist Version="2.0">
<Rule Name="Includes" Match="Any">
<Rule Match="All">
<Property Name="Solution" />
<Rule Match="Any">
<Property Name="Trait" Value="TestCategory [Value]" />
</Rule>
</Rule>
</Rule>
</Playlist>
실행하거나 그룹으로 보려는 테스트 목록을 만들고 저장할 수 있습니다. 재생 목록을 선택하면 목록의 테스트가 새 테스트 탐색기 탭에 표시됩니다. 둘 이상의 재생 목록에 테스트를 추가할 수 있습니다.
재생 목록을 만들려면 다음을 수행합니다.
- 테스트 탐색기에서 하나 이상의 테스트를 선택합니다.
- 창의 어딘가에 있는 위치를 마우스 오른쪽 단추로 클릭하고 재생 목록에 추가 가리킨 다음 새 재생 목록 선택합니다.
재생 목록을 만들기 위한 선택 항목을 보여 주는
재생 목록이 새 테스트 탐색기 탭에서 열립니다. 이 재생 목록을 한 번 사용한 다음 삭제할 수 있습니다. 또는 재생 목록 창의 도구 모음에서 저장 단추를 선택한 다음 재생 목록을 저장할 이름과 위치를 선택할 수 있습니다.
별도의 테스트 탐색기 탭에서 열린 재생 목록을 보여 주는
재생 목록을 열려면 다음을 수행합니다.
- Visual Studio 도구 모음에서 재생 목록 아이콘을 선택합니다.
- 메뉴에서 이전에 저장된 재생 목록 파일을 선택합니다.
재생 목록을 편집하려면 다음 옵션 중 하나를 사용합니다.
테스트를 마우스 오른쪽 단추로 클릭한 다음 메뉴 명령을 사용하여 재생 목록에서 추가하거나 제거합니다.
도구 모음에서 재생 목록 편집 단추를 선택합니다. 테스트 옆에 표시되는 확인란은 재생 목록에 포함되고 제외된 테스트를 보여 줍니다. 원하는 대로 그룹을 편집합니다. 이 기능은 Visual Studio 2019 버전 16.7에서 시작되었습니다.
도구 모음의 재생 목록 편집 단추를 보여 주는
계층 구조에서 부모 그룹에 대한 상자를 선택하거나 지울 수도 있습니다. 이 작업은 해당 그룹에 있는 테스트에 따라 재생 목록을 항상 업데이트하는 동적 재생 목록을 만듭니다.
예를 들어 클래스 옆에 있는 확인란을 선택하면 해당 클래스에서 추가된 모든 테스트가 이 재생 목록의 일부가 됩니다. 해당 클래스에서 테스트를 삭제하면 재생 목록에서 제거됩니다.
도구 모음의 저장 단추를 통해 재생 목록을 저장한 다음 디스크에 생성된 .playlist XML 파일을 열어 규칙에 대해 자세히 알아볼 수 있습니다. 이 파일에는 재생 목록을 구성하는 모든 규칙 및 개별 테스트가 나열됩니다.
재생 목록 XML 파일의 내용을 보여 주는
특성에 대한 재생 목록을 만들려면 MSTest 프레임워크에 다음 형식을 사용합니다.
<Playlist Version="2.0">
<Rule Name="Includes" Match="Any">
<Property Name="Trait" Value="SchemaUpdateBasic" />
</Rule>
</Playlist>
xUnit 프레임워크에 대해 다음 형식을 사용합니다.
TestCategory
이름과 [Value]
값 사이에 공백이 있는지 확인합니다.
<Playlist Version="2.0">
<Rule Name="Includes" Match="Any">
<Rule Match="All">
<Property Name="Solution" />
<Rule Match="Any">
<Property Name="Trait" Value="TestCategory [Value]" />
</Rule>
</Rule>
</Rule>
</Playlist>
테스트 탐색기 열
그룹 테스트 탐색기에서 특성, 스택 추적, 오류 메시지및 정규화된 이름함께 열로 사용할 수 있습니다. 대부분의 열은 기본적으로 표시되지 않습니다. 표시되는 열을 사용자 지정할 수 있습니다.
열을 필터링하고 정렬하거나 배열을 변경할 수 있습니다.
특정 특성을 필터링하려면 특성 열의 맨 위에 있는 필터 아이콘을 선택합니다.
열의 순서를 변경하려면 열 머리글을 선택하고 왼쪽 또는 오른쪽으로 끕니다.
열을 정렬하려면 열 머리글을 선택합니다. 모든 열을 정렬할 수 있는 것은 아닙니다. Shift 키를 누른 채 추가 열 머리글을 선택하여 보조 열을 기준으로 정렬할 수도 있습니다.
테스트 탐색기 열
그룹 테스트 탐색기에서 특성, 스택 추적, 오류 메시지및 정규화된 이름함께 열로 사용할 수 있습니다. 대부분의 열은 기본적으로 표시되지 않습니다. 표시되는 열을 사용자 지정할 수 있습니다.
열을 필터링하고 정렬하거나 배열을 변경할 수 있습니다.
특정 특성을 필터링하려면 특성 열의 맨 위에 있는 필터 아이콘을 선택합니다.
열의 순서를 변경하려면 열 머리글을 선택하고 왼쪽 또는 오른쪽으로 끕니다.
열을 정렬하려면 열 머리글을 선택합니다. 모든 열을 정렬할 수 있는 것은 아닙니다. Shift 키를 누른 채 추가 열 머리글을 선택하여 보조 열을 기준으로 정렬할 수도 있습니다.
테스트 목록 검색 및 필터링
테스트 탐색기 검색 필터를 사용하여 보고 실행하는 프로젝트의 테스트 메서드를 제한할 수도 있습니다.
테스트 탐색기 검색 상자에 문자열을 입력하고 Enter 키를 선택하면 정규화된 이름에 문자열이 포함된 테스트만 표시하도록 테스트 목록이 필터링됩니다.
다른 기준으로 필터링하려면 다음을 수행합니다.
검색 상자 오른쪽에 있는 드롭다운 목록을 엽니다.
새 조건을 선택합니다.
따옴표 사이에 필터 값을 입력합니다. 포함하는 일치 항목 대신 문자열에서 정확한 일치 항목을 검색하려면 콜론(:) 대신 등호(=)을 사용합니다.
메모
검색은 대/소문자를 구분하지 않으며 지정된 문자열을 조건 값의 모든 부분과 일치합니다.
한정자 | 묘사 |
---|---|
State | 테스트 탐색기 범주 이름에서 일치하는 항목을 검색합니다. 실패한 테스트, 건너뛴 테스트, 통과한 테스트. |
특성 | 특성 범주와 값을 모두 검색하여 일치 항목을 검색합니다. 단위 테스트 프레임워크는 특성 범주 및 값을 지정하는 구문을 정의합니다. |
정규화된 이름 | 일치 항목에 대한 테스트 네임스페이스, 클래스 및 메서드의 정규화된 이름을 검색합니다. |
프로젝트 | 테스트 프로젝트 이름에서 일치 항목을 검색합니다. |
대상 프레임워크 | 테스트 프레임워크에서 일치 항목을 검색합니다. |
네임스페이스 | 테스트 네임스페이스에서 일치 항목을 검색합니다. |
클래스 | 테스트 클래스 이름에서 일치 항목을 검색합니다. |
필터 결과의 하위 집합을 제외하려면 다음 구문을 사용합니다.
FilterName:"Criteria" -FilterName:"SubsetCriteria"
예를 들어 FullName:"MyClass" - FullName:"PerfTest"
이름에 "PerfTest"를 포함하는 테스트를 제외하고 이름에 "MyClass"를 포함하는 모든 테스트를 반환합니다.
단위 테스트 코드 커버리지 분석
Visual Studio Enterprise에서 사용할 수 있는 Visual Studio Code 검사 도구를 사용하여 단위 테스트가 실제로 테스트하는 제품 코드의 양을 확인할 수 있습니다. 선택한 테스트 또는 솔루션의 모든 테스트에서 코드 검사를 실행할 수 있습니다.
솔루션에서 테스트 메서드에 대한 코드 검사를 실행하려면 다음을 수행합니다.
- 테스트 탐색기를 마우스 오른쪽 단추로 클릭한 다음 선택한 테스트 대한 코드 검사 분석선택합니다.
코드 검사 결과 창에는 줄, 함수, 클래스, 네임스페이스 및 모듈별로 실행된 제품 코드 블록의 백분율이 표시됩니다.
자세한 내용은 코드 커버리지를 사용하여 테스트되는 코드의 양을 확인하세요.
테스트 단축키
다음 중 하나를 사용하여 테스트 탐색기에서 테스트를 실행할 수 있습니다.
- 코드 편집기에서 테스트를 마우스 오른쪽 단추로 클릭한 다음 테스트 실행
- Visual Studio에서 기본 테스트 탐색기 바로 가기 사용
일부 바로 가기는 컨텍스트 기반입니다. 코드 편집기에서 커서가 있는 위치에 따라 디버그, 실행, 또는 프로파일 테스트를 실행합니다. 커서가 테스트 메서드 내에 있는 경우 해당 테스트 메서드가 실행됩니다. 커서가 클래스 수준에 있으면 해당 클래스의 모든 테스트가 실행됩니다. 네임스페이스 수준에서도 동일한 동작이 마찬가지입니다.
자주 사용하는 명령 | 키보드 단축키 |
---|---|
TestExplorer.DebugAllTestsInContext |
Ctrl+R, Ctrl+T |
TestExplorer.RunAllTestsInContext |
Ctrl+R, T |
TestExplorer.RunAllTests |
Ctrl+R, A |
TestExplorer.RepeatLastRun |
Ctrl+R, L |
메모
테스트는 추상 클래스에서만 정의되고 인스턴스화되지 않으므로 추상 클래스에서 테스트를 실행할 수 없습니다. 추상 클래스에서 테스트를 실행하려면 추상 클래스에서 파생되는 클래스를 만듭니다.
오디오 신호 설정
테스트 탐색기는 테스트 실행이 완료되면 다음 소리 중 하나를 재생할 수 있습니다.
- 테스트 실행이 모든 통과 테스트에 성공했음을 나타내는 소리
- 테스트 실행이 하나 이상의 실패한 테스트로 완료되었음을 나타내는 소리
이러한 소리는 기본 Windows 11 소리 대화 상자에서 설정할 수 있습니다. 이 기능은 Visual Studio 2019 업데이트 16.9 미리 보기 3부터 사용할 수 있습니다.
- 기본 Windows 11 소리 대화 상자를 엽니다.
- 소리 탭으로 이동합니다.
- Microsoft Visual Studio 범주를 찾습니다. 테스트 실행 성공 또는 테스트 실행 실패 사운드를 선택하거나, 자신의 오디오 파일을 찾아보세요.