테스트 탐색기를 사용하여 단위 테스트 실행Run unit tests with Test Explorer

테스트 탐색기를 사용하여 Visual Studio 또는 타사 단위 테스트 프로젝트에서 단위 테스트를 실행하고, 테스트를 범주로 그룹화하며, 테스트 목록을 필터링하고, 테스트 PLAYLIST를 만들어 저장하고 실행할 수 있습니다.Use Test Explorer to run unit tests from Visual Studio or third-party unit test projects, group tests into categories, filter the test list, and create, save, and run playlists of tests. 테스트를 디버그하고 테스트 성능 및 코드 검사를 분석할 수도 있습니다.You can also debug tests and analyze test performance and code coverage.

목차Contents

단위 테스트 프레임워크 및 테스트 프로젝트Unit test frameworks and test projects

테스트 탐색기에서 테스트 실행Run tests in Test Explorer

테스트 결과 보기View test results

테스트 목록 그룹화 및 필터링Group and filter the test list

사용자 지정 재생 목록 만들기Create custom playlists

단위 테스트 디버그 및 분석Debug and analyze unit tests

외부 리소스External resources

단위 테스트 프레임워크 및 테스트 프로젝트Unit test frameworks and test projects

Visual Studio에는 관리 코드 및 네이티브 코드에 대한 Microsoft 단위 테스트 프레임워크가 있습니다.Visual Studio includes the Microsoft unit testing frameworks for both managed and native code. 그러나 테스트 탐색기도 테스트 탐색기 어댑터를 구현한 단위 테스트 프레임워크를 실행할 수 있습니다.However, Test Explorer can also run any unit test framework that has implemented a Test Explorer adapter. 타사 단위 테스트 프레임워크를 설치하는 방법에 대한 자세한 내용은 타사 단위 테스트 프레임워크 설치를 참조하세요.For more information about installing third-party unit test frameworks, see Install third-party unit test frameworks

테스트 탐색기는 솔루션의 여러 테스트 프로젝트 및 프로덕션 코드 프로젝트의 일부인 테스트 클래스에서 테스트를 실행할 수 있습니다.Test Explorer can run tests from multiple test projects in a solution and from test classes that are part of the production code projects. 테스트 프로젝트에 서로 다른 단위 테스트 프레임워크를 사용할 수 있습니다.Test projects can use different unit test frameworks. 테스트 중인 코드가 .NET Framework용으로 작성된 경우 테스트 프로젝트는 대상 코드의 언어에 관계없이 .NET Framework를 대상으로 하는 임의의 언어로 작성할 수 있습니다.When the code under test is written for the .NET Framework, the test project can be written in any language that also targets the .NET Framework, regardless of the language of the target code. 네이티브 C/C++ 코드 프로젝트는 C++ 단위 테스트 프레임워크를 사용하여 테스트해야 합니다.Native C/C++ code projects must be tested by using a C++ unit test framework. 자세한 내용은 C/C++에 대한 단위 테스트 작성을 참조하세요.For more information, see Writing Unit Tests for C/C++.

맨 위로 이동 목차Back to top Contents

테스트 탐색기에서 테스트 실행Run tests in Test Explorer

테스트 실행 | 각 빌드 후 테스트 실행Run tests | Run tests after every build

테스트 프로젝트를 빌드하면 테스트가 테스트 탐색기에 나타납니다.When you build the test project, the tests appear in Test Explorer. 테스트 탐색기가 표시되지 않는 경우 Visual Studio 메뉴에서 테스트 를 선택하고 Windows를 선택한 다음 테스트 탐색기를 선택합니다.If Test Explorer is not visible, choose Test on the Visual Studio menu, choose Windows, and then choose Test Explorer.

단위 테스트 탐색기Unit Test Explorer

테스트를 실행하고 작성하고 다시 실행하면 테스트 탐색기는 실패한 테스트, 통과한 테스트, 건너뛴 테스트실행하지 않은 테스트의 기본 그룹에 결과를 표시합니다.As you run, write, and rerun your tests, Test Explorer displays the results in default groups of Failed Tests, Passed Tests, Skipped Tests and Not Run Tests. 테스트 탐색기의 테스트 그룹화 방식을 변경할 수 있습니다.You can change the way Test Explorer groups your tests.

테스트 탐색기 도구 모음에서 테스트를 찾고 구성하고 실행하는 작업 중 많은 부분을 수행할 수 있습니다.You can perform much of the work of finding, organizing and running tests from the Test Explorer toolbar.

테스트 탐색기 도구 모음에서 테스트 실행Run tests from the Test Explorer toolbar

맨 위로 이동 목차Back to top Contents

테스트 실행Run tests

솔루션의 모든 테스트, 그룹의 모든 테스트 또는 선택한 테스트 집합을 실행할 수 있습니다.You can run all the tests in the solution, all the tests in a group, or a set of tests that you select. 다음 작업 중 하나를 수행합니다.Do one of the following:

  • 솔루션의 모든 테스트를 실행하려면 모두 실행을 선택합니다.To run all the tests in a solution, choose Run All.

  • 기본 그룹의 모든 테스트를 실행하려면 실행... 을 선택한 다음 메뉴에서 그룹을 선택합니다.To run all the tests in a default group, choose Run... and then choose the group on the menu.

  • 실행할 개별 테스트를 선택하고 선택한 테스트에 대한 상황에 맞는 메뉴를 연 다음 선택한 테스트 실행을 선택합니다.Select the individual tests that you want to run, open the context menu for a selected test and then choose Run Selected Tests.

  • 개별 테스트에 종속성이 없어 임의 순서로 실행할 수 있는 경우 도구 모음의 UTE_parallelicon-small 토글 단추를 사용하여 병렬 테스트 실행을 켭니다.If individual tests have no dependencies that prevent them from being run in any order, turn on parallel test execution with the UTE_parallelicon-small toggle button on the toolbar. 이렇게 하면 모든 테스트를 실행하는 데 걸리는 시간을 훨씬 줄일 수 있습니다.This can noticeably reduce the time taken to run all the tests.

    테스트가 실행되면 테스트 탐색기 창 위쪽의 통과/실패 표시줄에 애니메이션 효과가 적용됩니다.The pass/fail bar at the top of the Test Explorer window is animated as the tests run. 테스트 실행이 끝날 때 통과/실패 표시줄은 모든 테스트가 통과했으면 녹색이 되고 실패한 테스트가 있으면 빨간색이 됩니다.At the conclusion of the test run, the pass/fail bar turns green if all tests passed or turns red if any test failed.

    맨 위로 이동 목차Back to top Contents

각 빌드 후 테스트 실행Run tests after every build

경고

각 빌드 후 단위 테스트 실행은 Visual Studio Enterprise에서 지원됩니다.Running unit tests after every build is supported in Visual Studio Enterprise.

빌드 후 실행Run after build 각 로컬 빌드 후 단위 테스트를 실행하려면 표준 메뉴에서 테스트 를 선택한 다음 테스트 탐색기 도구 모음에서 빌드 후 테스트 실행 을 선택합니다.To run your unit tests after each local build, choose Test on the standard menu, and then choose Run Tests After Build on the Test Explorer toolbar.

맨 위로 이동 목차Back to top Contents

테스트 결과 보기View test results

테스트 정보 보기 | 테스트 메서드의 소스 코드 보기View test details | View the source code of a test method

테스트를 실행하고 작성하고 다시 실행하면 테스트 탐색기는 실패한 테스트, 통과한 테스트, 건너뛴 테스트실행하지 않은 테스트의 그룹에 결과를 표시합니다.As you run, write, and rerun your tests, Test Explorer displays the results in groups of Failed Tests, Passed Tests, Skipped Tests and Not Run Tests. 테스트 탐색기 아래쪽의 세부 정보 창에 테스트 실행에 대한 요약이 표시됩니다.The details pane at the bottom of Test Explorer displays a summary of the test run.

테스트 정보 보기View test details

개별 테스트의 정보를 보려면 해당 테스트를 선택합니다.To view the details of an individual test, select the test.

테스트 실행 정보Test execution details

테스트 정보 창에는 다음 정보가 표시됩니다.The test details pane displays the following information:

  • 테스트 메서드의 소스 파일 이름 및 줄 번호The source file name and the line number of the test method.

  • 테스트의 상태입니다.The status of the test.

  • 테스트 메서드가 실행되는 데 걸린 시간The elapsed time that the test method took to run.

    테스트가 실패할 경우 세부 정보 창에는 다음과 같은 정보도 표시됩니다.If the test fails, the details pane also displays:

  • 단위 테스트 프레임워크에서 테스트에 대해 반환된 메시지The message returned by the unit test framework for the test.

  • 테스트 실패 시의 스택 추적The stack trace at the time the test failed.

    맨 위로 이동 목차Back to top Contents

테스트 메서드의 소스 코드 보기View the source code of a test method

Visual Studio 편집기에서 테스트 메서드의 소스 코드를 표시하려면 테스트를 선택한 다음 상황에 맞는 메뉴에서 테스트 열기 (키보드: F12)를 선택합니다.To display the source code for a test method in the Visual Studio editor, select the test and then choose Open Test on the context menu (Keyboard: F12).

맨 위로 이동 목차Back to top Contents

테스트 목록 그룹화 및 필터링Group and filter the test list

테스트 목록 그룹화 | 특성(trait)별 그룹화 | 테스트 목록 검색 및 필터링Grouping the test list | Group by traits | Search and filter the test list

테스트 탐색기를 사용하면 미리 정의된 범주로 테스트를 그룹화할 수 있습니다.Test Explorer lets you group your tests into predefined categories. 테스트 탐색기에서 실행되는 대부분의 단위 테스트 프레임워크에서는 고유의 범주 및 범주/값 쌍을 정의하여 테스트를 그룹화할 수 있습니다.Most unit test frameworks that run in Test Explorer let you define your own categories and category/value pairs to group your tests. 또한 테스트 속성과 비교하여 일치하는 문자열을 찾아 테스트 목록을 필터링할 수도 있습니다.You can also filter the list of tests by matching strings against test properties.

테스트 목록 그룹화Grouping the test list

테스트 구성 방식을 변경하려면 그룹화 방법 단추 테스트 탐색기 그룹 단추 옆에 있는 아래쪽 화살표를 선택하고 새 그룹화 기준을 선택합니다.To change the way that tests are organized, choose the down arrow next to the Group By button Test Explorer group button and select a new grouping criteria.

테스트 탐색기에서 범주별로 테스트 그룹화Group tests by category in Test Explorer

테스트 탐색기 그룹Test Explorer groups

그룹화Group 설명Description
기간Duration 실행 시간을 기준으로 빠름, 보통, 느림으로 테스트를 그룹화합니다.Groups test by execution time: Fast, Medium, and Slow.
결과Outcome 실행 결과를 기준으로 실패한 테스트, 건너뛴 테스트, 통과한 테스트로 테스트를 그룹화합니다.Groups tests by execution results: Failed Tests, Skipped Tests, Passed Tests.
특성Traits 정의한 범주/값 쌍을 기준으로 테스트를 그룹화합니다.Groups test by category/value pairs that you define. 특성(trait) 범주 및 값을 지정하는 구문은 단위 테스트 프레임워크에 의해 정의됩니다.The syntax to specify trait categories and values is defined by the unit test framework.
프로젝트Project 프로젝트 이름을 기준으로 테스트를 그룹화합니다.Groups test by the name of the projects.

맨 위로 이동 목차Back to top Contents

특성(trait)별 그룹화Group by traits

특성(trait)은 일반적으로 범주 이름/값 쌍이지만 단일 범주일 수도 있습니다.A trait is usually a category name/value pair, but it can also be a single category. 특성(trait)은 단위 테스트 프레임워크에서 테스트 메서드로 식별하는 메서드에 할당할 수 있습니다.Traits can be assigned to methods that are identified as a test method by the unit test framework. 단위 테스트 프레임워크는 특성(trait) 범주를 정의할 수 있습니다.A unit test framework can define trait categories. 특성(trait) 범주에 고유한 범주 이름/값 쌍을 정의하는 값을 추가할 수 있습니다.You can add values to the trait categories to define your own category name/value pairs. 특성(trait) 범주 및 값을 지정하는 구문은 단위 테스트 프레임워크에 의해 정의됩니다.The syntax to specify trait categories and values is defined by the unit test framework.

Microsoft 단위 테스트 프레임워크의 관리 코드 관련 특성(trait)Traits in the Microsoft Unit Testing Framework for Managed Code

관리되는 앱에 대한 Microsoft 단위 테스트 프레임워크에서 특성(trait) 이름/값 쌍을 <xref:Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute> 특성에 정의합니다.In the Microsoft unit test framework for managed apps, you define a trait name/ value pair in a <xref:Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute> attribute. 테스트 프레임워크에는 다음과 같은 미리 정의된 특성(trait)이 있습니다.The test framework also contains these predefined traits:

특성Trait 설명Description
<xref:Microsoft.VisualStudio.TestTools.UnitTesting.OwnerAttribute> 소유자 범주는 단위 테스트 프레임워크에 의해 정의되며, 소유자의 문자열 값을 제공해야 합니다.The Owner category is defined by the unit test framework and requires you to provide a string value of the owner.
<xref:Microsoft.VisualStudio.TestTools.UnitTesting.PriorityAttribute> 우선순위 범주는 단위 테스트 프레임워크에 의해 정의되며, 우선순위의 정수 값을 제공해야 합니다.The Priority category is defined by the unit test framework and requires you to provide an integer value of the priority.
<xref:Microsoft.VisualStudio.TestTools.UnitTesting.TestCategoryAttribute> TestCategory 특성을 사용하면 값이 없는 범주를 제공할 수 있습니다.The TestCategory attribute enables you to provide a category without a value. TestCategory 특성으로 정의된 범주는 TestProperty 특성의 범주도 될 수 있습니다.A category defined by the TestCategory attribute can also be the category of a TestProperty attribute.
<xref:Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute> TestProperty 특성을 사용하여 특성(trait) 범주/값 쌍을 정의할 수 있습니다.The TestProperty attribute enables you to define trait category/value pair.

Microsoft 단위 테스트 프레임워크의 C++ 관련 특성(trait)Traits in the Microsoft Unit Testing Framework for C++
Microsoft Unit Testing Framework for C++ 사용 방법을 참조하세요.See How to use the Microsoft Unit Testing Framework for C++.

맨 위로 이동 목차Back to top Contents

테스트 목록 검색 및 필터링Search and filter the test list

테스트 탐색기 필터를 사용하여 프로젝트에서 보고 실행하는 테스트 메서드를 제한할 수 있습니다.You can use Test Explorer filters to limit the test methods in your projects that you view and run.

테스트 탐색기 검색 상자에 문자열을 입력하고 Enter 키를 선택하면 테스트 목록이 필터링되어 정규화된 이름에 문자열이 포함된 테스트만 표시됩니다.When you type a string in in the Test Explorer search box and choose ENTER, the test list is filtered to display only those tests whose fully qualified names contain the string.

다른 기준으로 필터링하려면To filter by a different criteria:

  1. 검색 상자 오른쪽에 있는 드롭다운 목록을 엽니다.Open the drop-down list to the right of the search box.

  2. 새 조건을 선택합니다.Choose a new criteria.

  3. 필터 값을 따옴표 사이에 입력합니다.Enter the filter value between the quotation marks.

    테스트 탐색기에서 테스트 필터링Filter tests in Test Explorer

참고

검색은 대/소문자를 구분하지 않으며 지정된 문자열이 조건 값의 어느 부분에라도 일치하는지 확인합니다.Searches are case insensitive and match the specified string to any part of the criteria value.

한정자Qualifier 설명Description
특성Trait 특성(trait) 범주와 일치 항목의 값을 검색합니다.Searches both trait category and value for matches. 특성(trait) 범주와 값을 지정하는 구문은 단위 테스트 프레임워크에 의해 정의됩니다.The syntax to specify trait categories and values are defined by the unit test framework.
프로젝트Project 테스트 프로젝트 이름에서 일치 항목을 검색합니다.Searches the test project names for matches.
오류 메시지Error Message 어설션 오류에 의해 반환되는 사용자 정의 오류 메시지에서 일치 항목을 검색합니다.Searches the user-defined error messages returned by failed asserts for matches.
파일 경로File Path 테스트 소스 파일의 정규화된 파일 이름에서 일치 항목을 검색합니다.Searches the fully qualified file name of test source files for matches.
정규화된 이름Fully Qualified Name 테스트 네임스페이스, 클래스 및 메서드의 정규화된 파일 이름에서 일치 항목을 검색합니다.Searches the fully qualified file name of test namespaces, classes, and methods for matches.
출력Output 표준 출력(stdout) 또는 표준 오류(stderr)에 기록된 사용자 정의 오류 메시지를 검색합니다.Searches the user-defined error messages that are written to standard output (stdout) or standard error (stderr). 출력 메시지를 지정하는 구문은 단위 테스트 프레임워크에 의해 정의됩니다.The syntax to specify output messages are defined by the unit test framework.
결과Outcome 테스트 탐색기 범주 이름에서 실패한 테스트, 건너뛴 테스트, 통과한 테스트등의 일치 항목을 검색합니다.Searches the Test Explorer category names for matches: Failed Tests, Skipped Tests, Passed Tests.

필터 결과의 하위 집합을 제외하려면 다음 구문을 사용합니다.To exclude a subset of the results of a filter, use the following syntax:

FilterName:"Criteria" -FilterName:"SubsetCriteria"  

예를 들면 다음과 같습니다.For example,

FullName:"MyClass" - FullName:"PerfTest"  

이름에 "PerfTest"가 들어 있는 경우를 제외하고 "MyClass"가 들어 있는 모든 테스트를 반환합니다.returns all tests that include "MyClass" in their name except those tests that also include "PerfTest" in their name.

맨 위로 이동 목차Back to top Contents

사용자 지정 재생 목록 만들기Create custom playlists

실행하거나 그룹으로 보려는 테스트 목록을 만들어 저장할 수 있습니다.You can create and save a list of tests that you want to run or view as a group. 재생 목록을 선택하면 목록의 테스트가 테스트 탐색기에 표시됩니다.When you select a playlist, the tests in the list are displayed Test Explorer. 두 개 이상의 재생 목록에 테스트를 추가할 수 있으며 기본 재생 목록인 모든 테스트 를 선택하면 프로젝트의 모든 테스트를 사용할 수 있습니다.You can add a test to more than one playlist, and all tests in your project are available when you choose the default All Tests playlist.

재생 목록 선택Choose a playlist

재생 목록을 만들려면테스트 탐색기에서 하나 이상의 테스트를 선택합니다.To create a playlist, choose one or more tests in Test Explorer. 상황에 맞는 메뉴에서 재생 목록에 추가, 새 재생 목록을 선택합니다.On the context menu, choose Add to Playlist, NewPlaylist. 새 재생 목록 만들기 대화 상자에서 지정한 이름과 위치를 사용해 파일을 저장합니다.Save the file with the name and location that you specify in the Create New Playlist dialog box.

재생 목록에 테스트를 추가하려면테스트 탐색기에서 하나 이상의 테스트를 선택합니다.To add tests to a playlist, choose one or more tests in Test Explorer. 상황에 맞는 메뉴에서 재생 목록에 추가를 선택한 다음 테스트를 추가할 재생 목록을 선택합니다.On the context menu, choose Add to Playlist, and then choose the playlist that you want to add the tests to.

재생 목록을 열려면Visual Studio 메뉴에서 테스트, 재생 목록을 선택한 다음 최근에 사용한 재생 목록 중에서 선택하거나 재생 목록 열기를 선택하여 재생 목록의 이름과 위치를 지정합니다.To open a playlist, choose Test, Playlist from the Visual Studio menu, and either choose from the list of recently used playlists, or choose Open Playlist to specify the name and location of the playlist.

개별 테스트에 종속성이 없어 임의 순서로 실행할 수 있는 경우 도구 모음의 UTE_parallelicon-small 토글 단추를 사용하여 병렬 테스트 실행을 켭니다.If individual tests have no dependencies that prevent them from being run in any order, turn on parallel test execution with the UTE_parallelicon-small toggle button on the toolbar. 이렇게 하면 모든 테스트를 실행하는 데 걸리는 시간을 훨씬 줄일 수 있습니다.This can noticeably reduce the time taken to run all the tests.

맨 위로 이동 목차Back to top Contents

단위 테스트 디버그 및 분석Debug and analyze unit tests

단위 테스트 디버그 | 테스트 메서드 성능 문제 진단 | 단위 테스트 코드 검사 분석Debug unit tests | Diagnose test method performance issues | Analyze unit test code coverage

단위 테스트 디버그Debug unit tests

테스트 탐색기를 사용하여 테스트에 대한 디버깅 세션을 시작할 수 있습니다.You can use Test Explorer to start a debugging session for your tests. Visual Studio 디버거에서 코드를 단계별로 실행하면 단위 테스트 및 테스트 중인 프로젝트 간을 앞뒤로 매끄럽게 이동할 수 있습니다.Stepping through your code with the Visual Studio debugger seamlessly takes you back and forth between the unit tests and the project under test. 디버깅을 시작하려면To start debugging:

  1. Visual Studio 편집기에서 디버그하려는 하나 이상의 테스트 메서드에서 중단점을 설정합니다.In the Visual Studio editor, set a breakpoint in one or more test methods that you want to debug.

    참고

    테스트 메서드는 순서에 관계 없이 실행할 수 있기 때문에 디버그하려는 모든 테스트 메서드에 중단점을 설정합니다.Because test methods can run in any order, set breakpoints in all the test methods that you want to debug.

  2. 테스트 탐색기에서 테스트 메서드를 선택한 다음 상황에 맞는 메뉴에서 선택한 테스트 디버그 를 선택합니다.In Test Explorer, select the test methods and then choose Debug Selected Tests on the context menu.

    디버거에 대한 자세한 내용은 Debugging in Visual Studio항목을 참조하세요.For more information, about the debugger, see Debugging in Visual Studio.

    맨 위로 이동 목차Back to top Contents

테스트 메서드 성능 문제 진단Diagnose test method performance issues

테스트 메서드에 너무 많은 시간이 소요되는 이유를 진단하려면 테스트 탐색기에서 메서드를 선택하고 상황에 맞는 메뉴에서 프로필을 선택합니다.To diagnose why a test method is taking too much time, select the method in Test Explorer and then choose Profile on the context menu. 성능 탐색기를 참조하세요.See Performance Explorer.

단위 테스트 코드 검사 분석Analyze unit test code coverage

참고

단위 테스트 코드 검사는 Visual Studio Enterprise에서만 사용할 수 있습니다.Unit test code coverage is available only in Visual Studio Enterprise.

Visual Studio 코드 검사 도구를 사용하여 실제로 단위 테스트를 통해 테스트되는 제품 코드의 양을 결정할 수 있습니다.You can determine the amount of your product code that is actually being tested by your unit tests by using the Visual Studio code coverage tool. 솔루션의 선택된 테스트 또는 모든 테스트에 대해 코드 검사를 실행할 수 있습니다.You can run code coverage on selected tests or on all tests in a solution.

솔루션에서 테스트 메서드에 대한 코드 검사를 실행하려면To run code coverage for test methods in a solution:

  1. Visual Studio 메뉴에서 테스트 를 선택한 다음 코드 검사 분석을 선택합니다.Choose Tests on the Visual Studio menu and then choose Analyze code coverage.

  2. 하위 메뉴에서 다음 명령 중 하나를 선택합니다.Choose one of the following commands from the sub-menu:

    • 선택한 테스트 는 테스트 탐색기에서 선택한 테스트 메서드를 실행합니다.Selected tests runs the test methods that you have selected in Test Explorer.

    • 모든 테스트 는 솔루션의 모든 테스트 메서드를 실행합니다.All tests runs all the test methods in the solution.

    코드 검사 결과 창에는 실행된 제품 코드 블록의 백분율이 줄, 함수, 클래스, 네임스페이스 및 모듈별로 표시됩니다.The Code Coverage Results window displays the percentage of the blocks of product code that were exercised by line, function, class, namespace and module.

    자세한 내용은 코드 검사를 사용하여 테스트할 코드 범위 결정을 참조하세요.For more information, see Using Code Coverage to Determine How Much Code is being Tested.

    맨 위로 이동 목차Back to top Contents

외부 리소스External resources

지침Guidance

Visual Studio 2012를 사용한 지속적인 업데이트 테스트 - 2장: 유닛 테스트: 내부 테스트Testing for Continuous Delivery with Visual Studio 2012 - Chapter 2: Unit Testing: Testing the Inside

참고 항목See Also

코드 단위 테스트 Unit Test Your Code
단위 테스트를 64비트 프로세스로 실행Run a unit test as a 64-bit process