Visual Studio 2010 단위 테스트 프로젝트 업그레이드Upgrade Visual Studio 2010 unit test projects

Visual Studio 2012Visual Studio 2012에는 Visual Studio 2010Visual Studio 2010 SP1 테스트 프로젝트에 대한 테스트 프로젝트 호환성이 포함됩니다. includes test project compatibility with Visual Studio 2010Visual Studio 2010 SP1 test projects. 예를 들어 Visual Studio 2010Visual Studio 2010 SP1에서 만든 테스트 프로젝트는 업그레이드 없이도 Visual Studio 2012Visual Studio 2012를 사용해서 열 수 있습니다.For example, test projects that you created with Visual Studio 2010Visual Studio 2010 SP1 can be opened using Visual Studio 2012Visual Studio 2012 without any upgrade. 따라서 팀에서 Visual Studio 2010Visual Studio 2010 SP1 및 Visual Studio 2012Visual Studio 2012를 둘 다 사용해서 동일한 테스트 프로젝트를 진행할 수 있습니다.Therefore, your team can use both Visual Studio 2010Visual Studio 2010 SP1 and Visual Studio 2012Visual Studio 2012 to work with same test project. 자세한 내용은 Visual Studio 2010에서 테스트 업그레이드를 참조하세요.For more information, see Upgrading tests from Visual Studio 2010.

Visual Studio 2012Visual Studio 2012에는 단위 테스트를 위해 몇 가지 변경 사항이 적용되었습니다. introduces several changes for unit testing. 이러한 변경 사항으로 인해 이전 버전의 Visual Studio와 Visual Studio 2012Visual Studio 2012 사이의 호환성 문제를 이해하는 것이 중요합니다.Because of these changes, it is important to understand the compatibility issues between previous versions of Visual Studio and Visual Studio 2012Visual Studio 2012. 단위 테스트에 대한 변경 사항 중에서도 중요한 변경 사항은 Visual Studio 2012Visual Studio 2012에 단위 테스트 프로젝트 템플릿을 포함해서 두 개 이상의 테스트 프로젝트 템플릿이 포함된다는 점입니다.Among the changes to unit testing, a significant change is that Visual Studio 2012Visual Studio 2012 includes more than one test project template, including a unit test project template. 새로운 단위 테스트가 새로운 단위 테스트 프로젝트 템플릿에 추가되었습니다.New unit tests are added to the new unit test project template. 단위 테스트를 코딩된 UI 테스트 프로젝트 템플릿이라는 새로운 테스트 프로젝트 템플릿에 포함할 수도 있습니다.Unit tests can also be included in another new test project template called the coded UI test project template. 새 테스트 프로젝트 템플릿에 대한 자세한 내용은 이전 버전의 Visual Studio에서 테스트 업그레이드를 참조하세요.For more information about the new test project templates, see Upgrading Tests from Earlier Versions of Visual Studio. 새 단위 테스트 프로젝트에는 기본적으로 테스트 설정 파일이 더 이상 포함되지 않습니다.The new unit test projects no longer include a test settings file by default. 테스트 설정 파일을 제외함으로써 단위 테스트의 성능이 향상되었습니다.By excluding the test settings file, the performance of your unit tests improves. 호환성의 경우, Visual Studio 2010을 사용해서 만든 기존 테스트 프로젝트를 계속 사용할 수 있습니다.For compatibility, you can still use your existing test projects that you created using Visual Studio 2010. 하지만 테스트 설정 파일이 특별히 필요한 경우가 아닌 한 성능을 위해 테스트 프로젝트와 연관된 테스트 설정 파일을 제거하는 것이 좋습니다.However, we recommend that you remove the test settings file associated with the test project for performance reasons unless you have a specific need for the test settings file. 예를 들어 단위 테스트가 분산 환경에서 실행되거나 특정 진단 데이터를 수집해야 할 경우에는 테스트 설정 파일을 보존하도록 선택할 수 있습니다.For example, you might choose to retain the test settings file if your unit tests run in a distributed environment, or you need to collect specific diagnostic data. 새로운 단위 테스트 프로젝트 템플릿 또는 코딩된 UI 테스트 프로젝트 템플릿을 사용할 때 이와 비슷한 요구 사항이 있으면 여기에 테스트 설정 파일을 수동으로 추가할 수도 있습니다.If you have a similar need using the new unit test project template, or coded UI test project template, you can manually add a test settings file to them as well.

참고

Visual Studio 2010Visual Studio 2010 SP1 테스트 프로젝트에 있는 기존 단위 테스트는 Visual Studio 2010Visual Studio 2010 SP1 및 Visual Studio 2012Visual Studio 2012 사이에 문제 없이 작동합니다.Existing unit tests in your Visual Studio 2010Visual Studio 2010 SP1 test projects will work seamlessly between Visual Studio 2010Visual Studio 2010 SP1 and Visual Studio 2012Visual Studio 2012. 단위 테스트가 포함된 Visual Studio 2010 테스트 프로젝트를 Visual Studio 2012Visual Studio 2012에서 열거나 그 반대로 할 때 테스트 프로젝트 파일은 변경되지 않습니다.No changes are made to the test project files when a Visual Studio 2010 test project containing your unit tests is opened in Visual Studio 2012Visual Studio 2012, or vice-versa.

주의

Visual Studio 2010은 11.0 도구 집합을 대상으로 하는 C++/CLI 프로젝트(즉, Visual Studio 2012 이상에서 만든 프로젝트)를 열 수 없습니다.Visual Studio 2010 can't open a C++/CLI project that targets the 11.0 toolset—that is, a project created in Visual Studio 2012 or later. 이러한 제한은 C++/CLI 단위 테스트 프로젝트 뿐만 아니라 모든 C++/CLI 프로젝트에 적용됩니다.This restriction applies to all C++/CLI projects, not just C++/CLI unit test projects.

참고

명령줄에서 vstest.console.exe를 사용해서 새 단위 테스트를 실행할 수 있습니다.You can run the new unit tests using vstest.console.exe from the command line. vstest.console.exe 사용에 대한 자세한 내용은 VSTest.Console.exe 명령줄 옵션을 참조하거나 도움말 스위치 vstest.console.exe /?를 사용해서 명령을 실행합니다.For more information about using vstest.console.exe, see VSTest.Console.exe command-line options, or run the command by using the help switch: vstest.console.exe /?. MStest.exe를 사용해서 기존 단위 테스트를 계속 실행할 수 있습니다.You can continue to run your existing unit tests using MStest.exe. 자세한 내용은 MSTest를 사용하여 명령줄에서 자동화된 테스트 실행MSTest.exe 명령줄 옵션을 참조하세요.For more information, see Run automated tests from the command line using MSTest and MSTest.exe command-line options.

또 다른 중요한 변경 사항은 새로운 테스트 탐색기입니다.Another significant change is the new Test Explorer. Visual Studio 2012Visual Studio 2012에서는 테스트 뷰 창과 같이 이전 버전의 Visual Studio에서 익숙하게 사용하던 일부 테스트 창이 더 이상 사용되지 않습니다.In Visual Studio 2012Visual Studio 2012, some of the testing windows you might be familiar with from previous version of Visual Studio have been deprecated, such as the Test View window. 테스트 탐색기는 소프트웨어 개발 방법에 유닛 테스트를 포함하는 개발자 및 팀을 보다 효과적으로 지원하도록 설계되었습니다.Test Explorer is designed to better support developers and teams who incorporate unit testing in their software development practices. 자세한 내용은 테스트 탐색기를 사용하여 단위 테스트 실행을 참조하세요.For more information, see Run unit tests with Test Explorer.

Visual Studio 2010 SP1과 Visual Studio 2012 이상 사이의 호환성 문제Compatibility issues between Visual Studio 2010 SP1 and Visual Studio 2012 or later

Visual Studio 2010 SP1과 Visual Studio 2012Visual Studio 2012 사이에 단위 테스트를 마이그레이션할 때는 주의해야 할 문제는 다음과 같습니다.Here are some issues to be aware of when you migrate unit tests between Visual Studio 2010 SP1 and Visual Studio 2012Visual Studio 2012:

단위 테스트 기능Unit Test functionality 문제Issue 솔루션Solution
테스트 목록(.vsmdi files)은 Visual Studio 2012Visual Studio 2012에서 사용되지 않습니다.Test lists (.vsmdi files) are deprecated in Visual Studio 2012Visual Studio 2012. 더 이상 Visual Studio에서 새 테스트 목록(.vsmdi 파일)을 만들거나 테스트 목록을 실행할 수 없습니다.You will no longer be able to create new test lists (.vsmdi files) or run test lists from Visual Studio. 팁: 테스트 범주를 사용하면 이전 버전의 Microsoft Visual Studio에서 테스트 목록 기능을 사용할 때보다 더 유연하게 테스트를 관리할 수 있습니다.Tip: Test categories provide more flexibility than the test lists functionality from earlier versions of Microsoft Visual Studio. 테스트 범주에 논리 연산자를 사용하여 여러 범주의 테스트를 함께 실행할 수도 있고 여러 범주에 속한 테스트 중 실제로 실행할 테스트를 제한할 수도 있습니다.You can use logical operators with test categories to run tests from multiple categories together or to limit the tests that you run to tests that belong to multiple categories. 뿐만 아니라 테스트 메서드를 만들 때 테스트 범주를 쉽게 추가할 수 있으므로 테스트 메서드를 만들고 난 후 테스트 목록을 따로 유지 관리할 필요가 없습니다.Also, test categories are easy to add as you create your test methods and you do not have to maintain test lists after you have created your test methods. 테스트 범주를 사용하면 테스트 목록을 유지 관리하는 <solution name>.vsmdi 파일을 체크 인 및 체크 아웃할 필요가 없습니다.By using test categories, you do not have to check in and check out the <solution name>.vsmdi file that maintains the test lists. 자세한 내용은 테스트 범주를 정의하여 테스트 그룹화를 참조하세요.For more information, see Defining Test Categories to Group Your Tests. - 테스트 목록을 사용하는 기존 테스트 프로젝트와의 호환성 유지를 위해, Visual Studio를 사용해서 여전히 .vsmdi 파일을 편집할 수 있습니다.- To maintain compatibility with your existing test projects that use test lists, you are still able to edit the .vsmdi files using Visual Studio.
- Visual Studio에서 마이그레이션된 테스트 목록을 실행할 수 없더라도 명령줄에서 mstest.exe를 사용해서 계속 실행할 수 있습니다.- Although you can't run migrated test lists from with Visual Studio, you can still run them using mstest.exe from the command line. 자세한 내용은 MSTest를 사용하여 명령줄에서 자동화된 테스트 실행을 참조하세요.For more information, see Run automated tests from the command line using MSTest
- 빌드 정의에서 테스트 목록을 사용 중이었다면 해당 테스트 목록을 계속 사용할 수 있습니다.- If you were using a test list in your build definition, you can continue to use it. 자세한 내용은 방법: 응용 프로그램을 빌드한 후 예약된 테스트 구성 및 실행빌드 프로세스에서 테스트 실행을 참조하세요.For more information, see How to: Configure and Run Scheduled Tests After Building Your Application and Run tests in your build process.
전용 접근자는 Visual Studio 2012Visual Studio 2012에서 사용되지 않습니다.Private accessors are deprecated in Visual Studio 2012Visual Studio 2012.

이전 버전의 Visual Studio에서는 Publicize를 사용해서 내부 API(응용 프로그래밍 인터페이스)를 지정하고 테스트에서 호출한 후 제품의 내부 API로 호출될 수 있는 공용 API를 만들 수 있었습니다.In previous versions of Visual Studio, you could use Publicize to specify an internal application programming interfaces (API) and create public counterpart API that you can call in your tests, which would in turn, call into the internal APIs of your product. 그런 다음 코드 생성을 사용해서 테스트 스텁을 만들고 해당 스텁 내에서 코드 조각을 생성할 수 있었습니다.You could then use code generation to create test stubs and generate code snippet inside that stub.
전용 접근자는 더 이상 만들 수 없습니다.You will no longer be able to create private accessors.
  • Visual Studio 2010 테스트 프로젝트는 Visual Studio 2012Visual Studio 2012에서 컴파일 및 작동됩니다.Visual Studio 2010 test projects will compile and work in Visual Studio 2012Visual Studio 2012. 빌드에는 출력 경고가 포함됩니다.The build will include output warnings.
  • 내부 API를 계속 테스트해야 할 경우에는 다음과 같은 옵션이 있습니다.If you still need to test internal APIs, you have these options:

    • <xref:Microsoft.VisualStudio.TestTools.UnitTesting.PrivateObject> 클래스를 사용해서 코드에서 내부 및 전용 API에 대한 액세스를 지원합니다.Use the <xref:Microsoft.VisualStudio.TestTools.UnitTesting.PrivateObject> class to assist in accessing internal and private APIs in your code. 이 클래스는 Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 어셈블리에 있습니다.This is found in the Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll assembly.
    • 내부 또는 전용 API에 액세스하기 위해 코드를 반영할 수 있는 리플렉션 프레임워크를 만듭니다.Create a reflection framework that would be able to reflect off your code to access internal or private APIs.
    • 액세스하려는 코드가 내부 코드인 경우 InternalsVisibleToAttribute를 사용해서 API에 액세스할 수 있으므로 테스트 코드가 내부 API에 액세스할 수 있습니다.If the code you are trying to access is internal, you might be able to access your APIs using InternalsVisibleToAttribute so your test code can have access to the internal APIs.
테스트 영향 제거Test Impact is removed
테스트 탐색기에서 TRX 로그를 통해 실행 결과를 공유합니다.Sharing of run results through TRX logs from Test Explorer. TRX 로그는 명령줄 및 팀 빌드에서 가져올 수 있습니다.You can still get TRX logs from both the command line and Team Build.

참고 항목See Also

Visual Studio 프로젝트 포팅, 마이그레이션, 업그레이드 Porting, Migrating, and Upgrading Visual Studio Projects
코드 단위 테스트 Unit Test Your Code
이전 버전의 Visual Studio에서 테스트 업그레이드 Upgrading Tests from Earlier Versions of Visual Studio
Visual Studio 2010에서 코딩된 UI 테스트 업그레이드Upgrading Coded UI Tests from Visual Studio 2010