애플리케이션을 개발하는 동안 Live Unit Testing은 영향을 받는 단위 테스트를 백그라운드에서 자동으로 실행하고 결과 및 코드 검사를 실시간으로 표시합니다. 코드를 수정할 때 Live Unit Testing은 변경 내용이 기존 테스트에 미치는 영향과 추가한 새 코드가 하나 이상의 기존 테스트에서 적용되는지 여부에 대한 피드백을 제공합니다. 이 피드백은 버그 수정을 수행하거나 새 기능을 추가할 때 단위 테스트를 작성하도록 알려 줍니다.
테스트에 Live Unit Testing을 사용하는 경우 테스트 상태에 대한 데이터를 유지합니다. 지속형 데이터를 사용하면 Live Unit Testing에서 코드 변경에 대응하여 동적으로 테스트를 실행하는 동안 뛰어난 성능을 제공할 수 있습니다.
Live Unit Testing은 .NET Core 또는 .NET Framework를 대상으로 하는 프로젝트에 대해 Visual Studio Enterprise 버전에서만 사용할 수 있습니다.
지원되는 테스트 프레임워크
Live Unit Testing은 다음 표에 나열된 인기 있는 세 가지 단위 테스트 프레임워크와 함께 작동합니다. 어댑터 및 프레임워크의 지원되는 최소 버전도 표시됩니다. 단위 테스트 프레임워크는 모두 NuGet.org 사용할 수 있습니다.
| 테스트 프레임워크 | Visual Studio 어댑터 최소 버전 | 프레임워크 최소 버전 |
|---|---|---|
| xUnit.net | xunit.runner.visualstudio 버전 2.2.0-beta3-build1187 | xunit 1.9.2 |
| NUnit | NUnit3TestAdapter 버전 3.5.1 | NUnit 버전 3.5.0 |
| MSTest (테스트 프레임워크) | MSTest.TestAdapter 1.1.4-preview | MSTest.TestFramework 1.0.5-preview |
Microsoft.VisualStudio.QualityTools.UnitTestFramework를 참조하는 이전 MSTest 기반 테스트 프로젝트가 있고 최신 MSTest NuGet 패키지로 이동하지 않으려는 경우 Visual Studio 2019 또는 Visual Studio 2017로 업그레이드합니다.
경우에 따라 Live Unit Testing이 작동하려면 프로젝트에서 참조하는 NuGet 패키지를 명시적으로 복원해야 할 수 있습니다. 두 가지 옵션이 있습니다.
- 솔루션의 명시적 빌드를 수행하여 복원합니다. Visual Studio의 최상위 메뉴에서 빌드>Rebuild Solution을 선택합니다.
- 솔루션에서 패키지를 복원합니다. 솔루션을 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 복원을 선택합니다.
Configure
솔루션에 대한 Live Unit Testing을 처음 시작할 때 설치 마법사를 사용하면 Live Unit Testing에서 테스트를 빌드하고 실행하는 방법을 구성할 수 있습니다.
Live Unit Testing이 중지되면 Live Unit Testing 솔루션에 대한Live Unit Testing> 구성 테스트>로 이동하여 설치 마법사를 열 수도 있습니다.
Live Unit Testing이 실행되면 원래 리포지토리의 복사본인 작업 영역을 만듭니다. 그런 다음 Live Unit Testing은 Visual Studio에서 저장하지 않은 변경 내용을 작업 영역에 적용하고, 빌드를 수행하고, 테스트 실행을 수행하고, 최신 코드 검사에 대해 보고합니다.
마법사를 사용하여 구성해야 하는 첫 번째 작업은 파일을 복사해야 하는 위치와 복사해야 하는 위치입니다.
리포지토리 루트
리포지토리 루트는 Live Unit Testing 작업 영역을 만들기 위해 복사할 폴더를 지정합니다. 리포지토리의 루트 폴더여야 합니다. 즉, 모든 원본, 이진 파일 및 도구를 포함해야 합니다. 솔루션 파일이 리포지토리 루트 아래에 없는 경우 리포지토리 루트를 변경해야 할 수 있습니다.
작업 영역 루트
작업 영역 루트는 Live Unit Testing이 리포지토리의 복제본을 유지하는 폴더를 지정합니다. 경로가 너무 길다는 예외를 주의하세요. 기본적으로 루트는 홈 폴더 아래에 만들어집니다. 그러나 예를 들어 일반적으로 C 드라이브 아래에 리포지토리를 만들어야 하는 경우 작업 영역 루트를 C:\lut\Repo와 같은 값으로 조정할 수 있습니다.
제외된 파일 지정
모든 파일을 Live Unit Testing 작업 영역에 복사해야 하는 것은 아닙니다. 일반 빌드가 Live Unit Testing 빌드를 방해하지 않도록 빌드 중에 생성된 아티팩트가 복사에서 제외되어야 합니다. 또한 일반 nuget restore 명령은 Live Unit Testing nuget restore 명령을 방해해서는 안 됩니다.
기본적으로 Live Unit Testing은 두 가지 파일 패턴 중 하나를 제외합니다.
- Git 리포지토리의 경우 gitignore 파일에 지정된 파일은 Live Unit Testing 작업 영역에 복사되지 않습니다.
- Git이 아닌 리포지토리의 경우 bin/ 및 obj/와 같은 폴더의 기본 목록은 Live Unit Testing 작업 영역에 복사되지 않습니다.
더 복잡한 리포지토리의 경우 사용자 고유의 무시 파일을 지정해야 할 수 있습니다. 마법사에서 "<사용자 지정>" 옵션을 선택합니다. 다음을 선택하면 마법사를 완료한 후 Live Unit Testing에서 만드는 사용자 지정 무시 파일의 콘텐츠가 나타납니다. lutignore 파일입니다.
비고
Git 리포지토리에서 gitignore 파일에 의해 무시되는 파일을 체크인할 수 있으므로 일부 Git 리포지토리에는 사용자 지정 lutignore 파일이 필요합니다. 사용자 지정 lutignore 파일이 없으면 Live Unit Testing에서 이러한 파일을 복사하지 않으므로 빌드 오류가 발생할 수 있습니다.
Lutignore 파일 구조
lutignore 파일은 gitignore 파일과 동일한 형식을 사용합니다. 작업 영역에 복사되지 않도록 빌드 중에 생성된 폴더 또는 파일과 일치하는 규칙이 포함되어야 합니다. 대부분의 기본 프로젝트 템플릿의 경우 다음 무시 파일로 충분합니다.
[Bb]in
[Oo]bj
# WILL NOT COPY ANY BIN AND OBJ FOLDERS TO THE LIVE UNIT TESTING WORKSPACE
리포지토리에 단일 빌드 폴더가 있는 경우 무시 파일에 해당 폴더가 대신 나열됩니다.
[Aa]rtifacts/
# WILL NOT COPY THE ARTIFACTS FOLDER TO THE LIVE UNIT TESTING WORKSPACE
리포지토리에 빌드 폴더에 다른 도구가 포함된 경우 일치하는 패턴 집합에서 이러한 도구를 제외해야 합니다.
[Aa]rtifacts/
![Aa]rtifacts/tools/
# WILL NOT COPY THE ARTIFACTS FOLDER TO THE LIVE UNIT TESTING WORKSPACE
# HOWEVER IT WILL COPY THE TOOLS SUBFOLDER THAT MIGHT CONTAIN TOOLS AND UTILITIES
빌드 옵션
마법사 구성 페이지의 두 번째 부분에서는 빌드 옵션을 구성합니다.
- PDB 생성: 빌드 속도를 높이기 위해 Live Unit Testing은 빌드 중에 PDB를 생성하지 않습니다. 이러한 기호 파일을 사용하면 테스트 오류가 발생할 때 스택 추적으로 이동합니다.
- 여러 CPU 코어를 사용하여 빌드: 기본적으로 Live Unit Testing은 여러 CPU 코어를 사용하여 빌드를 수행하므로 빌드 시간이 향상됩니다. 컴퓨터 속도가 느려지거나 여러 프로세서를 사용하여 솔루션을 빌드하지 못하는 경우 이 옵션을 선택하지 마세요.
테스트 실행 옵션
마법사 구성 페이지의 마지막 부분은 테스트 실행 옵션을 설정하는 위치입니다.
- 테스트 사례 시간 제한: 일부 테스트는 실행하는 데 시간이 오래 걸릴 수 있습니다. 테스트가 특정 기간을 초과하는 경우 이 필드를 설정하면 자동으로 중단됩니다. 테스트를 자동으로 취소할 수 있습니다.
- 여러 프로세서 사용: 기본적으로 Live Unit Testing은 여러 프로세서를 사용하여 실행 성능을 향상시키려고 합니다. 컴퓨터 속도가 느려지거나 솔루션이 병렬로 테스트를 실행할 수 없는 경우 이 옵션을 선택하지 마세요. 예를 들어 여러 테스트가 동일한 파일 경로에서 작성/읽기를 시도하는 경우 이러한 시나리오가 발생할 수 있습니다.
추가 구성
최상위 Visual Studio 메뉴 모음에서 도구>옵션을 선택하여 Live Unit Testing을 구성합니다.
옵션 창에서 모든 설정>테스트>라이브 단위 테스트 섹션을 확장합니다.
옵션 대화 상자에서 Live Unit Testing> 섹션을 확장합니다.
Live Unit Testing을 사용하도록 설정한 후(Live Unit Testing 시작, 일시 중지 및 중지 참조) 테스트>Live Unit Testing>옵션을 선택하여 옵션을 다시 열 수 있습니다.
구성 가능한 옵션은 다음과 같습니다.
솔루션을 빌드하고 디버그할 때 Live Unit Testing이 일시 중지되는지 여부입니다.
시스템의 배터리 전원이 지정된 임계값 아래로 떨어질 때 Live Unit Testing이 일시 중지되는지 여부입니다.
모든 지속형 데이터를 삭제하는 기능입니다. 이 기능은 Live Unit Testing이 예측할 수 없거나 예기치 않은 방식으로 동작하는 경우에 유용합니다. 이는 지속형 데이터가 손상되었음을 시사합니다.
Live Unit Testing 프로세스에서 사용할 수 있는 최대 메모리 양입니다.
Live Unit Testing 출력 창에 기록된 정보 수준입니다.
옵션에는 로깅 없음(없음), 오류 메시지만(오류), 오류 및 정보 메시지(정보, 기본값) 또는 모든 세부 정보(자세한 정보)가 포함됩니다.
Live Unit Testing 출력 창에서 자세한 정보를 표시하려면
VS_UTE_DIAGNOSTICS라는 이름의 사용자 수준 환경 변수에 값 1을 할당해야 합니다. 그런 다음 Visual Studio를 다시 시작합니다.파일의 Live Unit Testing에서 자세한 MSBuild 로그 메시지를 캡처하려면 사용자 수준 환경 변수를 로그를 포함할 파일 이름으로 설정합니다
LiveUnitTesting_BuildLog.
Live Unit Testing용 빌드 사용자 지정
더 복잡한 솔루션의 경우 빌드를 추가로 사용자 지정해야 할 수 있습니다. 예를 들어 테스트 실행 중에 번역 파일을 빌드할 필요가 없을 수 있습니다. 빌드 속도를 높이기 위해 Live Unit Testing을 사용하여 번역 파일 빌드를 사용하지 않도록 설정할 수 있습니다. 프로젝트 파일을 조작하여 이 작업을 수행할 수 있습니다.
라이브 유닛 테스트 재정의를 추가합니다.
사용자 솔루션에서 "일반" 비계측 빌드에 필요하지 않은 계측(Instrumentation, Live Unit Testing)을 위한 사용자 지정 단계가 필요한 경우, 프로젝트에 코드를 추가하거나 .targets 파일을 사용하여 BuildingForLiveUnitTesting 속성을 확인하고 사용자 지정 빌드 전/후 단계를 수행할 수 있습니다.
예를 들어 다음 샘플을 작성하여 Live Unit Testing에 대해서만 실행되는 다른 대상을 추가할 수 있습니다.
<Target Name="GenerateNuGetPackages" BeforeTargets="AfterBuild" Condition="'$(BuildingForLiveUnitTesting)' == 'true'">
<Exec Command='"$(MSBuildThisFileDirectory)..\tools\GenPac" '/>
</Target>
이 BuildingForLiveUnitTesting 속성을 사용하여 테스트 빌드에 대해 실행해서는 안 되는 일부 작업을 사용하지 않도록 설정할 수 있습니다. 예를 들어 Live Unit Testing은 테스트용 분석기를 사용하지 않도록 설정합니다 <RunAnalyzers>false</RunAnalyzers> .
Live Unit Testing 테스트 종속성
테스트를 실행하는 데 필요한 모든 파일이 복사되지는 않을 수 있습니다. Live Unit Testing은 테스트를 실행하는 별도의 폴더를 만듭니다. 이러한 정렬을 통해 테스트가 실행되는 동안 빌드가 수행될 수 있지만 빌드 폴더의 모든 파일이 테스트 폴더에 복사되는 것은 아닙니다.
일반적으로 다음 두 가지 이유 중 하나로 테스트 종속성을 추가합니다.
- 테스트는 원본 트리 아래의 파일에 따라 달라집니다. 예를 들어 테스트는 resx 파일의 내용을 검사하거나 일부 구성 파일을 읽을 수 있습니다.
- 테스트는 참조하는 일부 라이브러리에 따라 달라집니다. 예를 들어 테스트는 종속성으로 빌드된 실행 파일을 실행합니다.
비고
테스트 종속성은 설치 마법사에서 리포지토리 루트 로 지정된 디렉터리 내에 있어야 합니다.
두 경우 모두 Live Unit Testing은 테스트를 실행하기 위해 복사해야 하는 파일 수를 최소화하기 위해 기본적으로 이러한 파일을 복사하지 않습니다. 테스트 실행에 필요한 경우 속성을 사용하여 LiveUnitTestingTestDependency 이러한 파일을 명시적으로 지정해야 합니다. 예를 들어 다음과 같은 레이아웃이 있다고 가정해 보겠습니다.
SRC/
CONSOLE_UTILITY/
TEST_PROJECT/
ARTIFACTS/
CONSOLE_UTILITY/NET472/DEBUG/
TEST_PROJECT/NET472/DEBUG/
기본적으로 Live Unit Testing을 사용하여 이러한 프로젝트를 빌드하면 테스트 폴더에만 복사됩니다 Artifacts/Test_Project . 테스트 폴더에 소스나 console_utility를 추가하려면, test_project.csproj에 다음 샘플을 추가하세요.
<LiveUnitTestingTestDependency Include=”$(RepoRoot)/Src/ConsoleUtility” />
<LiveUnitTestingTestDependency Include=”$(RepoRoot)/Artifacts/ConsoleUtility/net472/$(Configuration)/</LiveUnitTestingTestDependency” />
시작, 일시 중지 및 중지
Live Unit Testing을 사용하도록 설정하려면 최상위 Visual Studio 메뉴에서 Test>Live Unit Testing>Start를 선택합니다. Live Unit Testing을 사용하도록 설정하면 Live Unit Testing 메뉴에서 사용할 수 있는 옵션이 단일 항목인 시작에서 일시 중지 및 중지로 변경됩니다.
일시 중지 는 Live Unit Testing을 일시적으로 일시 중단합니다.
Live Unit Testing이 일시 중지되면 검사 시각화가 편집기에서 표시되지 않지만 수집된 모든 데이터는 유지됩니다. Live Unit Testing을 다시 시작하려면 Live Unit Testing 메뉴에서 [계속]을 선택합니다. Live Unit Testing은 일시 중지된 동안 수행된 모든 편집 내용을 따라잡고 문자 모양을 적절하게 업데이트하는 데 필요한 작업을 수행합니다.
중지는 Live Unit Testing을 완전히 중지합니다. Live Unit Testing은 수집한 모든 데이터를 삭제합니다.
단위 테스트 프로젝트를 포함하지 않는 솔루션에서 Live Unit Testing을 시작하면 Live Unit Testing 메뉴에 일시 중지 및 중지 옵션이 표시되지만 Live Unit Testing은 시작되지 않습니다. 출력 창에는 "지원되는 테스트 어댑터가 이 솔루션에서 참조되지 않습니다..."라는 메시지가 표시됩니다.
언제든지 Live Unit Testing을 일시적으로 일시 중지하거나 완전히 중지할 수 있습니다. 예를 들어 리팩터링 중이고 테스트가 잠시 동안 끊어지는 것을 알고 있는 경우 이러한 작업을 수행할 수 있습니다.
테스트 프로젝트 및 테스트 메서드 포함 및 제외
Live Unit Testing을 시작하면 Live Unit Testing 도구 창이 나타나고 Live Unit Testing에서 테스트할 테스트 집합을 선택하라는 메시지가 표시됩니다.
단위 테스트를 실행하는 데 시간이 거의 걸리지 않는 소규모 솔루션의 경우 모든 테스트 포함을 선택하여 Live Unit Testing이 모든 테스트를 실행하도록 합니다.
테스트 프로젝트가 많은 대규모 솔루션의 경우 재생 목록을 편집하여 프로젝트의 프로젝트 및 개별 메서드가 Live Unit Testing에 참여하는 것을 제어할 수 있습니다. 예를 들어 수백 개의 테스트 프로젝트가 있는 솔루션이 있는 경우 Live Unit Testing에 참여할 대상 테스트 프로젝트 집합을 선택할 수 있습니다.
테스트 탐색기의 재생 목록처럼 작동하는 기능인 Live Unit Testing 재생 목록을 편집하여 Live Unit Testing을 실행할 항목을 선택합니다.
Live Unit Testing 재생 목록을 편집하는 방법에는 여러 가지가 있습니다.
- Live Unit Testing 도구 창
- 코드 편집기 창
- 솔루션 탐색기
- 테스트 코드에서 프로그래밍 방식으로
Live Unit Testing은 포함/제외 상태를 사용자 설정으로 저장하고 솔루션을 닫았다가 다시 열 때 이를 기억합니다.
Live Unit Testing 도구 창
Live Unit Testing 탭의 재생 목록 편집기를 사용하여 실행에서 프로젝트, 네임스페이스 또는 클래스를 포함하거나 제외할 수 있습니다. 도구 창에서 재생 목록 편집 을 선택합니다.
테스트를 포함하거나 제외할 트리 뷰 요소를 선택하거나 지울 수 있습니다. 예를 들어 단일 테스트를 확인하는 경우 Live Unit Testing은 변경 시 실행합니다. 클래스를 선택하면 해당 클래스의 모든 테스트가 실행되고 해당 클래스에 추가된 새 테스트도 실행됩니다.
코드 편집기 창
코드 편집기 창을 사용하여 개별 테스트 메서드를 포함하거나 제외할 수 있습니다. 코드 편집기 창에서 테스트 메서드의 서명 또는 본문을 마우스 오른쪽 단추로 클릭하고 다음 옵션 중 하나를 선택합니다.
- Live Unit Testing>선택한 메서드< 포함 >
- Live Unit Testing>선택한 메서드< 제외 >
- Live Unit Testing>선택한 메서드만 제외하고 모두< 예외 처리>
솔루션 탐색기
단위 테스트에서 개별 프로젝트를 선택하려면 Live Unit Testing이 시작된 후 다음 단계를 수행합니다.
- 솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하고 Live Unit Testing>제외를 선택하여 전체 솔루션을 제외합니다.
- 테스트에 포함할 각 테스트 프로젝트를 마우스 오른쪽 단추로 클릭하고 Live Unit Testing>Include를 선택합니다.
테스트 코드에서 프로그래밍 방식으로
Live Unit Testing에서 코드 범위 보고에서 제외할 메서드, 클래스 또는 구조에 프로그래밍 방식으로 ExcludeFromCodeCoverageAttribute 특성을 적용할 수 있습니다.
Live Unit Testing에서 개별 메서드를 제외하려면 다음 특성을 사용합니다.
-
xUnit:
[Trait("Category", "SkipWhenLiveUnitTesting")] -
NUnit:
[Category("SkipWhenLiveUnitTesting")] -
MSTest:
[TestCategory("SkipWhenLiveUnitTesting")]
다음 특성을 사용하여 Live Unit Testing에서 테스트의 전체 어셈블리를 제외합니다.
-
xUnit:
[assembly: AssemblyTrait("Category", "SkipWhenLiveUnitTesting")] -
NUnit:
[assembly: Category("SkipWhenLiveUnitTesting")] -
MSTest:
[assembly: TestCategory("SkipWhenLiveUnitTesting")]
커버리지 시각화 보기
Live Unit Testing을 사용하도록 설정한 후에는 Visual Studio 편집기에서 각 코드 줄을 업데이트하여 작성하는 코드가 단위 테스트에서 적용되는지 여부와 이를 다루는 테스트가 통과하는지 여부를 보여 줍니다.
다음 이미지는 테스트 통과 및 실패가 있는 코드 줄과 테스트에서 다루지 않는 코드 줄을 보여 줍니다. 녹색 "✓"이 있는 선은 테스트를 통과해야만 적용됩니다. 빨간색 "x"가 있는 선은 하나 이상의 실패한 테스트로 처리됩니다. 파란색 "➖"이 있는 선은 테스트에서 다루지 않습니다.
코드 편집기에서 코드를 수정하면 Live Unit Testing 검사 시각화가 즉시 업데이트됩니다. 편집을 처리하는 동안 데이터를 최신 상태가 아님을 나타내기 위해 시각화가 변경됩니다. 이는 다음 이미지와 같이 전달됨, 실패, 커버되지 않음 기호 아래에 라운드 타이머 이미지를 추가하여 보여줍니다.
테스트 상태에 대한 정보 가져오기
코드 창에서 통과되었거나 실패한 기호를 마우스로 가리키면 해당 줄에 도달한 테스트 수를 확인할 수 있습니다. 개별 테스트의 상태를 보려면 기호를 선택합니다.
도구 설명은 테스트의 이름과 결과를 제공하는 것 외에도 테스트 집합을 다시 실행하거나 디버그할 수 있습니다. 도구 설명에서 하나 이상의 테스트를 선택하는 경우 해당 테스트만 실행하거나 디버그할 수 있습니다. 이 작업을 사용하면 코드 창을 벗어나지 않고도 테스트를 디버그할 수 있습니다.
디버깅하는 경우 이미 설정한 중단점을 관찰하는 것 외에도 디버거가 예기치 않은 결과를 반환하는 메서드를 실행할 때 프로그램 실행이 일시 중지됩니다 Assert .
도구 설명에서 실패한 테스트를 마우스로 가리키면 다음 이미지와 같이 오류에 대한 자세한 정보를 제공하도록 확장됩니다. 실패한 테스트로 직접 이동하려면 도구 설명에서 두 번 클릭합니다.
실패한 테스트로 이동하면 Live Unit Testing은 메서드 서명에 다음과 같은 테스트가 있음을 시각적으로 나타냅니다.
- 성공 (비커가 반쯤 차 있고, 녹색 "✓"으로 표시됨).
- 실패 (빨간색 "🞩"과 함께 반쯤 찬 비커로 표시됨).
- Live Unit Testing에 관여되어 있지 않습니다 (파란색 "➖"과 함께 반쯤 찬 비커로 표시됨).
테스트되지 않은 메서드는 기호로 식별되지 않습니다. 다음 이미지는 네 가지 유형의 메서드를 모두 보여 줍니다.
테스트 실패 진단 및 수정
실패한 테스트에서 제품 코드를 쉽게 디버그하고, 편집하고, 애플리케이션 개발을 계속할 수 있습니다. Live Unit Testing은 백그라운드에서 실행되므로 디버그, 편집 및 계속 주기 중에 Live Unit Testing을 중지하고 다시 시작할 필요가 없습니다.
예를 들어 이전 이미지에 표시된 테스트 실패는 메서드에 전달될 때 비정형 문자가 반환 true 된다는 테스트 메서드의 System.Char.IsLower 잘못된 가정으로 인해 발생했습니다. 테스트 메서드를 수정한 후에는 모든 테스트가 통과해야 합니다. 실시간 단위 테스트를 일시 중지하거나 멈출 필요가 없습니다.
라이브 유닛 테스트 창
테스트 탐색기와 유사한 Live Unit Testing은 테스트를 실행하고 디버그하고 테스트 결과를 분석할 수 있는 인터페이스를 제공합니다. Live Unit Testing을 사용하도록 설정하면 테스트 탐색기의 단위 테스트 상태가 즉시 업데이트됩니다. 단위 테스트를 명시적으로 실행할 필요가 없습니다.
Live Unit Testing이 활성화되지 않았거나 중지되면 Live Unit Testing 은 테스트가 마지막으로 실행되었을 때 단위 테스트의 상태를 표시합니다. Live Unit Testing을 다시 시작한 후 테스트를 다시 실행하려면 소스 코드 변경이 필요합니다.
최상위 Visual Studio 메뉴에서 Live Unit Testing 테스트를> 선택하여Live Unit Testing>을 시작할 수 있습니다.
Live Unit Testing 창에서 일부 테스트가 페이드 아웃되었음을 알 수 있습니다. 예를 들어 Live Unit Testing을 중지하고 다시 시작하면 다음 이미지와 같이 Live Unit Testing 창이 모든 테스트를 페이드 아웃합니다.
페이드 아웃된 테스트 결과는 테스트가 최신 Live Unit Test 실행의 일부가 아님을 나타냅니다. 테스트는 테스트나 테스트의 종속성이 감지된 경우에만 실행됩니다. 변경 내용이 없으면 불필요하게 테스트를 실행하지 않습니다. 이 경우 회색으로 표시된 테스트 결과는 최신 실행의 일부가 아니었지만 여전히 "최신 상태"입니다.
코드를 변경하여 페이드된 것처럼 보이는 모든 테스트를 다시 실행할 수 있습니다.
Live Unit Testing이 테스트 결과를 자동으로 실행 및 업데이트하고 테스트 탐색기에서 테스트를 명시적으로 실행하는 경우 간에는 몇 가지 차이점이 있습니다. 이러한 차이점은 다음과 같습니다.
- 테스트 탐색기 창에서 테스트를 실행하거나 디버깅하면 일반 이진 파일이 실행됩니다. Live Unit Testing은 계측된 이진 파일을 실행합니다.
- Live Unit Testing은 테스트를 실행할 새 애플리케이션 도메인을 만들지 않습니다. 대신 기본 도메인에서 테스트를 실행합니다. 테스트 탐색기 창에서 실행되는 테스트는 새 애플리케이션 도메인을 만듭니다.
- Live Unit Testing은 각 테스트 어셈블리에서 순차적으로 테스트를 실행합니다. 테스트 탐색기 창에서 여러 테스트를 병렬로 실행하도록 선택할 수 있습니다.
Live Unit Testing 테스트 실행 취소
Live Unit Testing은 코드를 변경할 때마다 테스트를 계속 실행합니다. 실행이 진행 중이고 더 많은 코드를 변경하는 경우 Live Unit Testing은 첫 번째 실행이 완료되기를 기다리는 동안 다른 실행을 큐에 추가합니다.
파일을 저장할 때마다 Live Unit Testing은 첫 번째 실행을 취소하고 대기 중인 실행을 즉시 예약합니다. 이 프로세스는 첫 번째 실행을 완료하는 데 시간이 오래 걸리는 시나리오에 도움이 됩니다.