코드 단위 테스트Unit Test Your Code

개발자와 테스터는 단위 테스트를 통해 Visual C#Visual C#, Visual BasicVisual BasicVisual C++Visual C++ 프로젝트에서 클래스의 메서드에 있는 논리 오류를 빠르게 찾을 수 있습니다.Unit tests give developers and testers a quick way to look for logic errors in the methods of classes in Visual C#Visual C#, Visual BasicVisual Basic, and Visual C++Visual C++ projects.

단위 테스트 도구는 다음과 같습니다.The unit test tools include:

  1. 테스트 탐색기.Test Explorer. 테스트 탐색기에서는 단위 테스트를 실행하고 그 결과를 볼 수 있습니다.Test Explorer lets you run unit tests and view their results. 테스트 탐색기에서는 타사 프레임워크를 비롯하여 탐색기용 어댑터가 있는 모든 단위 테스트 프레임워크를 사용할 수 있습니다.Test Explorer can use any unit test framework, including a third-party framework, that has an adapter for the Explorer.

  2. 관리 코드용 Microsoft 단위 테스트 프레임워크.Microsoft unit test framework for managed code. 관리 코드용 Microsoft 단위 테스트 프레임워크는 Visual Studio와 함께 설치되며 .NET 코드 테스트용 프레임워크를 제공합니다.The Microsoft unit test framework for managed code is installed with Visual Studio and provides a framework for testing .NET code.

  3. C++용 Microsoft 단위 테스트 프레임워크.Microsoft unit test framework for C++. C++용 Microsoft 단위 테스트 프레임워크는 Visual Studio와 함께 설치되며 네이티브 코드 테스트용 프레임워크를 제공합니다.The Microsoft unit test framework for C++ is installed with Visual Studio and provides a framework for testing native code. Google Test, Boost.Test 및 CTest 프레임워크 역시 Visual Studio에 포함되어 있으며 타사 어댑터를 추가 테스트 프레임 워크에서 사용할 수 있습니다.Google Test, Boost.Test, and CTest frameworks are also included with Visual Studio and third-party adapters are available for additional test frameworks. 자세한 내용은 C/C++에 대한 단위 테스트 작성을 참조하세요.For more information, see Writing Unit Tests for C/C++.

  4. 코드 검사 도구.Code coverage tools. 단위 테스트가 테스트 탐색기의 명령 하나에서 실행하는 제품 코드의 양을 결정할 수 있습니다.You can determine the amount of product code that your unit tests exercise from one command in Test Explorer.

  5. Microsoft Fakes 격리 프레임워크.Microsoft Fakes isolation framework. Microsoft Fakes 격리 프레임워크는 테스트 중인 코드에서 종속성을 만드는 프로덕션 및 시스템 코드에 대한 대체 클래스 및 메서드를 만들 수 있습니다.The Microsoft Fakes isolation framework can create substitute classes and methods for production and system code that create dependencies in the code under test. 함수에 대한 모조 위임을 구현하여 종속성 개체의 동작과 출력을 제어할 수 있습니다.By implementing the fake delegates for a function, you control the behavior and output of the dependency object.

    IntelliTest를 사용하면 .NET 코드를 탐색하여 테스트 데이터 및 단위 테스트 도구 모음을 생성할 수도 있습니다.You can also use IntelliTest to explore your .NET code to generate test data and a suite of unit tests. 코드의 모든 문에 대해 해당 문을 실행할 테스트 입력이 생성됩니다.For every statement in the code, a test input is generated that will execute that statement. 코드의 모든 조건부 분기에 대해 사례 분석이 수행됩니다.A case analysis is performed for every conditional branch in the code.

주요 작업Key tasks

다음 항목은 단위 테스트를 이해하고 만드는 데 유용합니다.Use the following topics to help with understanding and creating unit tests:

작업Tasks 관련 항목Associated Topics
빠른 시작 및 연습: 다음 항목을 사용하여 코드 예제에서 Visual Studio의 단위 테스트에 대해 알아봅니다.Quick starts and walkthroughs: Use the following topics to learn unit testing in Visual Studio from code examples. - 연습: 관리 코드에 대한 단위 테스트 만들기 및 실행- Walkthrough: Creating and Running Unit Tests for Managed Code
- 빠른 시작: 테스트 탐색기를 사용한 테스트 기반 개발- Quick Start: Test Driven Development with Test Explorer
- 기존 C++ 응용 프로그램에 단위 테스트 추가- Adding unit tests to existing C++ applications
- 테스트 탐색기를 사용하여 네이티브 코드 단위 테스트- Unit testing native code with Test Explorer
테스트 탐색기를 사용한 단위 테스트: 테스트 탐색기를 통해 보다 다 생산적이고 효율적인 단위 테스트를 만드는 방법에 대해 알아봅니다.Unit testing with Test Explorer: Learn how Test Explorer can help create more productive and efficient unit tests. - 단위 테스트 기본 사항- Unit Test Basics
- 단위 테스트 프로젝트 만들기- Create a unit test project
- 테스트 탐색기를 사용하여 단위 테스트 실행- Run unit tests with Test Explorer
- 타사 단위 테스트 프레임워크 설치- Install third-party unit test frameworks
- Visual Studio 2010에서 단위 테스트 업그레이드- Upgrading Unit Tests from Visual Studio 2010
관리 코드 단위 테스트:Unit testing managed code: - 관리 코드용 Microsoft 단위 테스트 프레임워크를 사용하여 .NET Framework용 단위 테스트 작성- Writing Unit Tests for the .NET Framework with the Microsoft Unit Test Framework for Managed Code
C++ 코드 단위 테스트Unit testing C++ code - C++용 Microsoft 단위 테스트 프레임워크를 사용하여 C/C++용 단위 테스트 작성- Writing Unit tests for C/C++ with the Microsoft Unit Testing Framework for C++
단위 테스트 격리Isolating unit tests - Microsoft Fakes를 사용하여 테스트 중인 코드 격리- Isolating Code Under Test with Microsoft Fakes
코드 검사를 사용하여 프로젝트의 코드 중 단위 테스트로 테스트되는 부분 식별: Visual Studio 애플리케이션 수명 주기 관리Visual Studio Application Lifecycle Management테스트 도구의 코드 검사 기능에 대해 알아보세요.Use code coverage to identify what proportion of your project's code is being tested using unit tests: Learn about the code coverage feature of Visual Studio 애플리케이션 수명 주기 관리Visual Studio Application Lifecycle Management testing tools. - 코드 검사를 사용하여 테스트할 코드 범위 결정- Using Code Coverage to Determine How Much Code is being Tested
단위 테스트에 대한 부하 테스트를 사용하여 스트레스 및 성능 분석 수행: 응용 프로그램에서 성능 및 스트레스 문제를 격리하기 위해 부하 테스트를 만들고 여기에 단위 테스트를 추가할 수 있습니다.Perform stress and performance analysis by using load tests for your unit tests: You can create a load test and add your unit tests to it to help isolate performance and stress issues in your application. 참고: 부하 테스트를 만들고 사용하려면 Visual Studio Enterprise가 필요합니다.Note: Creating and using load tests requires Visual Studio Enterprise. - 부하 테스트 만들기 및 편집- Creating and Editing Load Tests
- 방법: 부하 테스트 시나리오에 웹 성능 테스트 및 단위 테스트 추가- How to: Add Web Performance Tests and Unit Tests to a Load Test Scenario
- 방법: 부하 테스트 시나리오에서 웹 성능 테스트 및 단위 테스트 제거- How to: Remove Web Tests and Unit Tests from a Load Test Scenario
품질 게이트 설정 및 적용: 코드의 품질을 확인하기 위해 코드를 체크 인하기 전에 테스트가 실행되도록 품질 게이트를 만들 수 있습니다.Set and enforce quality gates: You can create quality gates to enforce that tests are run before code is checked in to help ensure the quality of the code. - 품질 게이트 설정 및 적용- Set and Enforce Quality Gates
단위 테스트 형식 확장: 단위 테스트 프레임워크에 없을 수도 있는 테스트에 기능을 추가할 수 있습니다.Extend the unit test type: You can add functionality to your tests that might not be in the Unit Test Framework. 예를 들어 테스트를 일반 사용자로 실행할지 여부를 지정하는 테스트 속성을 추가할 수 있습니다.For example, you can add a test property that specifies if a test should run as a normal user or not. 또는 프레임워크를 확장하여 메서드에 행 특성을 추가하고 테스트에서 이 행의 데이터를 사용할 수 있습니다.Or you can extend the framework to add row attributes to a method and use the data in that row inside the test. 단위 테스트 프레임워크를 확장하는 방법에 대한 예제 코드는 다음 Microsoft 웹 사이트를 참조하세요.For sample code of how to extend the unit test framework, see the following Microsoft Web site.
테스트 옵션 설정: 예를 들면 테스트 결과가 저장되는 위치를 지정할 수 있습니다.Set testing options: For example, you can specify where test results are stored. .runsettings 파일을 사용하여 단위 테스트 구성Configure unit tests by using a .runsettings file

Microsoft Test Manager에서 테스트 결과 검토Reviewing Test Results in Microsoft Test Manager

테스트 결과에 대해 설명하고, 테스트 결과 보기, 저장 및 삭제 방법을 비롯하여 테스트 결과의 사용 방법에 대해 설명합니다.Describes test results and ways to work with them, including how to view, save, and delete them.

Microsoft Visual Studio를 사용하여 시스템 테스트 실행.Running System Tests Using Microsoft Visual Studio

Visual Studio를 사용하여 자동화된 테스트를 실행하는 방법을 Microsoft Test ManagerMicrosoft Test Manager를 사용할 경우와 비교하여 설명하는 항목에 대한 링크를 제공합니다.Provides links to information about using Visual Studio as opposed to using Microsoft Test ManagerMicrosoft Test Manager to run automated tests.

참조Reference

<xref:Microsoft.VisualStudio.TestTools.UnitTesting>
유닛 테스트를 지원하는 특성, 예외, 어설션 및 기타 클래스를 제공하는 UnitTesting 네임스페이스에 대해 설명합니다.Describes the UnitTesting namespace, which provides attributes, exceptions, asserts, and other classes that support unit testing.

<xref:Microsoft.VisualStudio.TestTools.UnitTesting.Web>
ASP.NETASP.NET 및 웹 서비스 단위 테스트를 지원하여 UnitTesting 네임스페이스를 확장하는 UnitTesting.Web 네임스페이스에 대해 설명합니다.Describes the UnitTesting.Web namespace, which extends the UnitTesting namespace by providing support for ASP.NETASP.NET and Web service unit tests.

외부 리소스External resources

비디오Videos

채널 9: XAML을 사용하여 빌드한 UWP 앱 유닛 테스트Channel 9: Unit testing your UWP apps built using XAML

포럼Forums

Visual Studio 단위 테스트Visual Studio Unit Testing

지침Guidance

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

참조Reference

단위 테스트에 대한 콘텐츠 인덱스Content Index for Unit Tests

참고 항목See Also

코드 품질 향상 Improve Code Quality
응용 프로그램 테스트Testing the application