Live Unit Testing 질문과 대답Live Unit Testing Frequently Asked Questions

Live Unit Testing은 정기적으로 개선 및 향상됩니다.Live Unit Testing is improved and enhanced regularly. 최신의 새로운 기능과 향상된 기능에 대한 정보를 어떻게 찾을 수 있나요?How can I find information about the latest new features and enhancements?

대답:Answer:

Visual Studio 2017 버전 15.3부터 적용되는 Live Unit Testing의 새로운 기능 및 향상된 기능에 대한 자세한 내용은 Live Unit Testing의 새로운 기능을 참조하세요.To learn about the new features and enhancements that have been made to Live Unit Testing starting with Visual Studio 2017 version 15.3, see What's New in Live Unit Testing.

Live Unit Testing 에서 지원하는 테스트 프레임워크와 지원되는 최소 버전은 어떻게 되나요?What test frameworks does Live Unit Testing support and what are the minimum supported versions?

대답:Answer:

Live Unit Testing은 다음 테이블에 나열된 세 가지 인기 있는 단위 테스트 프레임워크를 사용합니다.Live Unit Testing works with the three popular unit testing frameworks listed in the following table. 해당 어댑터와 프레임워크를 지원하는 최소 버전은 테이블에 나열됩니다.The minimum supported version of their adapters and frameworks is also listed in the table. 단위 테스트 프레임워크는 NuGet.org에서 모두 사용할 수 있습니다.The unit testing frameworks are all available from NuGet.org.


테스트 프레임워크Test Framework Visual Studio 어댑터 최소 버전Visual Studio Adapter minimum version 프레임워크 최소 버전Framework minimum version
xUnit.netxUnit.net xunit.runner.visualstudio 버전 2.2.0-beta3-build1187xunit.runner.visualstudio version 2.2.0-beta3-build1187 xunit 1.9.2xunit 1.9.2
NUnitNUnit NUnit3TestAdapter 버전 3.5.1NUnit3TestAdapter version 3.5.1 NUnit 버전 3.5.0NUnit version 3.5.0
MSTestMSTest MSTest.TestAdapter 1.1.4-미리 보기MSTest.TestAdapter 1.1.4-preview MSTest.TestFramework 1.0.5-미리 보기MSTest.TestFramework 1.0.5-preview

Microsoft.VisualStudio.QualityTools.UnitTestFramework를 참조하는 이전 MSTest 기반 테스트 프로젝트가 있고 최신 MSTest NuGet 패키지로 이동하지 않으려면 Visual Studio 2017 버전 15.4로 업그레이드하세요.If you have older MSTest based test projects that reference Microsoft.VisualStudio.QualityTools.UnitTestFramework and you don’t wish to move to the newer MSTest NuGet packages, upgrade to Visual Studio 2017 version 15.4.

경우에 따라 Live Unit Testing이 작동하기 위해 솔루션의 프로젝트에서 참조하는 NuGet 패키지를 명시적으로 복원해야 합니다.In some cases, you may need to explicitly restore the NuGet packages referenced by the projects in the solution in order for Live Unit Testing to work. 이렇게 하려면 솔루션의 명시적 빌드를 수행합니다(최상위 Visual Studio 메뉴에서 빌드, 솔루션 다시 빌드를 선택). 또는 Living Unit Testing을 활성화하기 전에 솔루션에서 패키지를 복원합니다(솔루션을 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 복원을 선택).You can do this either by doing an explicit build of the solution (select Build, Rebuild Solution from the top-level Visual Studio menu) or by restoring packages in the solution (right-click on the solution and select Restore NuGet Packages) before enabling Living Unit Testing.

Live Unit Testing은 .NET Core와 호환되나요?Does Live Unit Testing work with .NET Core?

대답:Answer:

예.Yes. Live Unit Testing은 .NET Core 및 .NET Framework와 호환됩니다.Live Unit Testing works with .NET Core and the .NET Framework. 최근에 Visual Studio 2017 버전 15.3에서 .NET Core 지원이 추가되었습니다.Support for .NET Core was added recently in Visual Studio 2017 version 15.3. .NET Core에 대한 Live Unit Testing 지원이 필요한 경우 이 버전의 Visual Studio로 업그레이드하세요.Please upgrade to this version of Visual Studio if you want Live Unit Testing support for .NET Core.

Live Unit Testing을 설정해도 작동하지 않는 이유는 무엇인가요?Why doesn't Live Unit Testing work when I turn it on?

대답:Answer:

출력 창(Live Unit Testing 드롭다운을 선택한 경우)은 Live Unit Testing이 작동하지 않는 이유를 설명합니다.The Output Window (when the Live Unit Testing drop-down is selected) should tell you why Live Unit Testing is not working. 다음과 같은 이유로 Live Unit Testing이 작동하지 않을 수 있습니다.Live Unit testing may not work for one of the following reasons:

  • 솔루션의 프로젝트에서 참조하는 NuGet 패키지가 복원되지 않은 경우 Live Unit Testing은 작동하지 않습니다.If NuGet packages referenced by the projects in the solution have not been restored, Live Unit Testing will not work. Live Unit Testing을 설정하기 전에 솔루션을 명시적으로 빌드하거나 솔루션의 NuGet 패키지를 복원하면 이 문제가 해결되어야 합니다.Doing an explicit build of the solution or restoring NuGet packages in the solution before turning Live Unit Testing on should resolve this issue.

  • 프로젝트에서 MSTest 기반 테스트를 사용하는 경우 Microsoft.VisualStudio.QualityTools.UnitTestFramework에 대한 참조를 제거하고 최신 MSTest NuGet 패키지, MSTest.TestAdapter(1.1.11의 최소 버전 필요) 및 MSTest.TestFramework(1.1.11의 최소 버전 필요)에 대한 참조를 추가해야 합니다.If you are using MSTest-based tests in your projects, make sure that you remove the reference to Microsoft.VisualStudio.QualityTools.UnitTestFramework, and add references to the latest MSTest NuGet packages, MSTest.TestAdapter (a minimum version of 1.1.11 is required) and MSTest.TestFramework (a minimum version of 1.1.11 is required). 자세한 내용은 Visual Studio 2017 Enterprise Edition에서 Live Unit Testing 사용 항목의 "지원되는 테스트 프레임워크" 섹션을 참조하세요.For more information, see the "Supported test frameworks" section of the Use Live Unit Testing in Visual Studio 2017 Enterprise Edition topic.

  • 솔루션에 있는 하나 이상의 프로젝트에는 NuGet 참조 또는 xUnit, NUnit 또는 MSTest 테스트 프레임워크에 대한 직접 참조가 있어야 합니다.At least one project in your solution should have either a NuGet reference or direct reference to the xUnit, NUnit or MSTest test framework. 이 프로젝트도 해당하는 Visual Studio 테스트 어댑터 NuGet 패키지를 참조해야 합니다.This project should also reference a corresponding Visual Studio test adapters NuGet package. Visual Studio 테스트 어댑터는 .runsettings 파일을 통해 참조될 수도 있습니다.The Visual Studio test adapter can also be referenced through a .runsettings file. .runsettings 파일에는 다음과 같은 항목이 있어야 합니다.The .runsettings file must have an entry like the one below:

     <RunSettings> 
        <RunConfiguration>
           <TestAdaptersPaths>path-to-your-test-adapter</TestAdaptersPaths>
        </RunConfiguration> 
     </RunSettings> 
    

Visual Studio 프로젝트에서 참조되는 테스트 어댑터를 지원되는 버전으로 업그레이드한 후 Live Unit Testing에 잘못된 범위가 표시되는 이유는 무엇인가요?Why does Live Unit Testing show incorrect coverage after you upgrade the test adapter referenced in your Visual Studio Projects to the supported version?

대답:Answer:

  • 솔루션의 여러 프로젝트에서 NuGet 테스트 어댑터 패키지를 참조하는 경우 각 프로젝트를 지원되는 버전으로 업그레이드해야 합니다.If multiple projects in the solution reference the NuGet test adapter package, each of them must be upgraded to the supported version.

  • 또한 테스트 어댑터 패키지에서 가져온 MSBuild .props 파일이 올바르게 업데이트되었는지 확인합니다.Make sure the MSBuild .props file imported from the test adapter package is correctly updated as well. 다음과 같이 일반적으로 프로젝트 파일의 위쪽에 있는 가져오기의 NuGet 패키지 버전/경로를 확인합니다.Check the NuGet package version/path of the import, which can usually be found near the top of the project file, like the following:

     <Import Project="..\packages\xunit.runner.visualstudio.2.2.0\build\net20\xunit.runner.visualstudio.props" Condition="Exists('..\packages\xunit.runner.visualstudio.2.2.0\build\net20\xunit.runner.visualstudio.props')" />
    

내 Live Unit Testing 빌드를 사용자 지정할 수 있나요?Can I customize my Live Unit Testing builds?

대답:Answer:

"일반적인" 계측되지 않은 빌드에 필요하지 않은 계측(Live Unit Testing)을 위해 빌드하는 사용자 지정 단계가 솔루션에 필요한 경우 프로젝트 또는 대상 파일에 코드를 추가하여 BuildingForLiveUnitTesting 속성에 대해 확인하고 사용자 지정 사전/사후 빌드 단계를 수행할 수 있습니다.If your solution requires custom steps to build for instrumentation (Live Unit Testing) that are not required for the "regular" non-instrumented build, then you can add code to your project or .targets files that checks for the BuildingForLiveUnitTesting property and performs custom pre/post build steps. 또한 특정 빌드 단계(예: 패키지 게시 또는 생성)을 제거하거나 빌드 단계(예: 필수 구성 요소 복사)를 이 프로젝트 속성을 기반으로 하는 Live Unit Testing 빌드에 추가할 수 있습니다.You can also choose to remove certain build steps (like publishing or generating packages) or to add build steps (like copying prerequisites) to a Live Unit Testing build based on this project property. 이렇게 하더라도 일반적인 빌드를 변경하지 않으며 Live Unit Testing 빌드에만 영향을 줍니다.This will not alter your regular build in any way and will only impact Live Unit Testing builds.

예를 들어 일반적인 빌드 중에 NuGet 패키지를 생성하는 대상이 있을 수 있습니다.For example, there may be a target that produces NuGet packages during a regular build. 아마도 편집을 모두 완료한 후에 NuGet 패키지를 생성하려고 하지는 않을 것입니다.You probably do not want NuGet packages to be generated after every edit you make. 따라서 다음과 같은 작업을 실행하여 Live Unit Testing 빌드에서 해당 대상을 해제할 수 있습니다.So you can disable that target in the Live Unit Testing build by doing something like the following:

<Target Name="GenerateNuGetPackages" BeforeTargets="AfterBuild" Condition="'$(BuildingForLiveUnitTesting)' != 'true'"> 
    <Exec Command='"$(MSBuildThisFileDirectory)..\tools\GenPac" '/> 
</Target> 

<OutputPath> 또는 <OutDir>을 포함한 오류 메시지Error messages with <OutputPath> or <OutDir>

Live Unit Testing이 내 솔루션을 빌드하려고 하는 경우 다음 오류가 표시되는 이유는 무엇인가요? “무조건 <OutputPath> 또는 <OutDir>으로 설정된 것으로 보입니다. Live Unit Testing은 출력 어셈블리에서 테스트를 실행하지 않습니다.”Why do I get the following error when Live Unit Testing tries to build my solution: "...appears to unconditionally set <OutputPath> or <OutDir>. Live Unit Testing will not execute tests from the output assembly"?

대답:Answer:

솔루션에 대한 빌드 프로세스가 무조건 <OutputPath> 또는 <OutDir>를 재정의하는 경우에 발생할 수 있습니다. 따라서 <BaseOutputPath>의 하위 디렉터리가 아닙니다.This can happen if the build process for your solution unconditionally overrides <OutputPath> or <OutDir> so that it is not a subdirectory of <BaseOutputPath>. 이러한 경우에 빌드 아티팩트가 <BaseOutputPath> 아래의 폴더에 배치되도록 이러한 항목을 재정의하기 때문에 Live Unit Testing은 작동하지 않습니다.In such cases, Live Unit Testing will not work because it also overrides these to ensure that build artifacts are dropped to a folder under <BaseOutputPath>. 빌드 아티팩트를 일반적인 빌드에 배치하는 위치를 재정의해야 하는 경우 <BaseOutputPath>에 따라 조건부로 <OutputPath>를 재정의합니다.If you must override the location where you want your build artifacts to be dropped in a regular build, override the <OutputPath> conditionally based on <BaseOutputPath>.

예를 들어 다음과 같이 빌드가 <OutputPath>를 재정의하는 경우:For example, if your build overrides the <OutputPath> as shown below:

<Project> 
  <PropertyGroup> 
    <OutputPath>$(SolutionDir)Artifacts\$(Configuration)\bin\$(MSBuildProjectName)</OutputPath> 
  </PropertyGroup> 
</Project> 

그러면 다음 항목으로 바꿀 수 있습니다.then you can replace it with the following:

<Project> 
  <PropertyGroup> 
    <BaseOutputPath Condition="'$(BaseOutputPath)' == ''">$(SolutionDir)Artifacts\$(Configuration)\bin\$(MSBuildProjectName)\</BaseOutputPath> 
    <OutputPath Condition="'$(OutputPath)' == ''">$(BaseOutputPath)</OutputPath> 
  </PropertyGroup> 
</Project> 

그렇게 하면 <OutputPath><BaseOutputPath> 폴더 내에 위치합니다.This ensures that <OutputPath> lies within the <BaseOutputPath> folder.

<OutDir>를 빌드 프로세스에서 직접 재정의하지 않습니다. 특정 위치에 빌드 아티팩트를 배치하는 대신 <OutputPath>를 재정의합니다.Do not override <OutDir> directly in your build process; override <OutputPath> instead to drop build artifacts to a specific location.

Live Unit Testing 빌드 아티팩트의 위치 설정Setting the location of Live Unit Testing build artifacts

Live Unit Testing 빌드 아티팩트를 원하는 .vs 폴더의 기본 위치 대신 특정 위치로 이동하려고 합니다. 어떻게 변경할 수 있나요?I want the artifacts of a Live Unit Testing build to go to a specific location instead of the default location under the .vs folder. How can I change that?

대답:Answer:

LiveUnitTesting_BuildRoot 사용자 수준 환경 변수를 Live Unit Testing 빌드 아티팩트를 배치하려는 경로로 설정합니다.Set the LiveUnitTesting_BuildRoot user-level environment variable to the path where you want the Live Unit Testing build artifacts to be dropped.

Test Explorer 창에서 테스트를 실행하는 것과 Live Unit Testing에서 테스트를 실행하는 것은 어떻게 다른가요?How is running tests from Test Explorer window different from running tests in Live Unit Testing?

대답:Answer:

다음과 같은 몇 가지 차이점이 있습니다.There are several differences:

  • Test Explorer 창에서 테스트를 실행 또는 디버깅하면 일반 이진 파일을 실행합니다. 반면 Live Unit Testing은 계측된 이진 파일을 실행합니다.Running or debugging tests from the Test Explorer window runs regular binaries, whereas Live Unit Testing runs instrumented binaries. 계측된 이진 파일을 디버그하려는 경우 테스트 메서드에서 Debugger.Launch 메서드 호출을 추가하면 해당 메서드가 실행될 때(Live Unit Testing에서 실행하는 경우 포함)마다 디버거가 시작되고 계측된 이진 파일을 연결하고 디버그할 수 있습니다.If you want to debug instrumented binaries, adding a Debugger.Launch method call in your test method causes the debugger to launch whenever that method is executed (including when it is executed by Live Unit Testing), and you can then attach and debug the instrumented binary. 그러나 계측이 대부분의 사용자 시나리오에 대해 투명하고 계측된 이진 파일을 디버그할 필요가 없는 것이 좋습니다.However, our hope is that instrumentation is transparent to you for most user scenarios, and that you do not need to debug instrumented binaries.

  • Live Unit Testing은 테스트를 실행하기 위해 새 응용 프로그램 도메인을 만들지 않지만 Test Explorer 창에서 실행되는 테스트는 새 응용 프로그램 도메인을 만듭니다.Live Unit Testing does not create a new application domain to run tests, but tests run from the Test Explorer window do create a new application domain.

  • Live Unit Testing은 각 테스트 어셈블리에서 순차적으로 테스트를 실행하는 반면 Test Explorer 창에서 여러 테스트를 실행하고 동시에 테스트 실행 단추를 선택한 경우 테스트가 동시에 실행됩니다.Live Unit Testing runs tests in each test assembly sequentially, whereas if you run multiple tests from the Test Explorer window and you selected the Run Tests in Parallel button, they will run in parallel.

  • Live Unit Testing에서 테스트를 검색 및 실행하면 TestPlatform의 버전 2를 사용하는 반면 Test Explorer 창은 버전 1을 사용합니다.Discovery and execution of tests in Live Unit Testing uses version 2 of TestPlatform, whereas the Test Explorer window uses version 1. 그러나 대부분의 경우에는 차이를 알 수 없습니다.You should not notice a difference in most cases, though.

  • 현재 Test Explorer는 기본적으로 STA(단일 스레드 아파트)에서 실행되는 반면 Live Unit Testing은 MTA(다중 스레드 아파트)에서 테스트를 실행합니다.Test Explorer currently runs tests in a single-threaded apartment (STA) by default, whereas Live Unit Testing runs tests in a multithreaded apartment (MTA). Live Unit Testing의 STA에서 MSTest 테스트를 실행하려면 MSTest.STAExtensions 1.0.3-beta에서 찾을 수 있는 <STATestMethod> 또는 <STATestClass> 특성을 사용하여 NuGet 패키지 테스트 메서드 또는 포함한 클래스를 데코레이트합니다.To run MSTest tests in STA in Live Unit Testing, decorate the test method or the containing class with the <STATestMethod> or <STATestClass> attribute that can be found in the MSTest.STAExtensions 1.0.3-beta NuGet package. NUnit의 경우 테스트 메서드를 <RequiresThread(ApartmentState.STA)> 특성을 사용하여 데코레이트하고 xUnit의 경우 <STAFact> 특성을 사용하여 데코레이트합니다.For NUnit, decorate the test method with the <RequiresThread(ApartmentState.STA)> attribute, and for xUnit, with the <STAFact> attribute.

Live Unit Testing에 참여하지 않도록 테스트를 제외하려면 어떻게 하나요?How do I exclude tests from participating in Live Unit Testing?

대답:Answer:

사용자 지정 설정은 Visual Studio 2017 Enterprise Edition에서 Live Unit Testing 사용 항목의 "테스트 프로젝트 및 테스트 메서드 포함 및 제외" 섹션을 참조하세요.See the "Including and excluding test projects and test methods" section of the Use Live Unit Testing in Visual Studio 2017 Enterprise Edition topic for the user-specific setting. 이러한 기능은 특정 편집 세션에 특정 집합의 테스트를 실행하거나 고유한 개인 기본 설정을 유지하려는 경우에 매우 유용합니다.This is extremely useful when you want to run a specific set of tests for a particular edit session or to persist your own personal preferences.

솔루션 지정 설정은 Live Unit Testing에서 계측한 메서드, 속성, 클래스 또는 구조를 제외하여 프로그래밍 방식으로 System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute 특성을 적용할 수 있습니다.For solution-specific settings, you can apply the System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute attribute programmatically to exclude methods, properties, classes, or structures from being instrumented by Live Unit Testing. 또한 프로젝트 파일에서 <ExcludeFromCodeCoverage> 속성을 true로 설정하여 전체 프로젝트를 계측하지 않도록 제외할 수도 있습니다.Additionally, you can also set the <ExcludeFromCodeCoverage> property to true in your project file to exclude the whole project from being instrumented. Live Unit Testing은 계측되지 않는 테스트를 실행하지만 해당 검사를 시각화할 수는 없습니다.Live Unit Testing will still run the tests that have not been instrumented, but their coverage will not be visualized.

Microsoft.CodeAnalysis.LiveUnitTesting.Runtime이 현재 응용 프로그램 도메인에 로드되고 그에 따라 테스트를 사용하지 않도록 설정하는지 여부를 확인할 수도 있습니다.You can also check whether Microsoft.CodeAnalysis.LiveUnitTesting.Runtime is loaded in the current application domain and disable tests based on that. 예를 들어 xUnit을 사용하여 다음과 같은 작업이 가능합니다.For example, you can do something like the following with xUnit:

[ExcludeFromCodeCoverage]
public class SkipLiveFactAttribute : FactAttribute
{
   private static bool s_lutRuntimeLoaded = AppDomain.CurrentDomain.GetAssemblies().Any(a => a.GetName().Name == 
                                            "Microsoft.CodeAnalysis.LiveUnitTesting.Runtime");
   public override string Skip => s_lutRuntimeLoaded ? "Test excluded from Live Unit Testing" : "";
}

public class Class1
{
   [SkipLiveFact]
   public void F()
   {
      Assert.True(true);
   }
}

Win32 PE 헤더가 Live Unit testing에서 빌드한 계측된 어셈블리와 다른 이유는 무엇인가요?Why are Win32 PE headers different in instrumented assemblies built by Live Unit testing?

대답:Answer:

이 문제는 해결되었으며 Visual Studio 2017 버전 15.3에 없습니다.This issue is fixed and does not exist in in Visual Studio 2017 version 15.3. 이 버전의 Visual Studio로 업그레이드하세요.Please upgrade to this version of Visual Studio.

이전 버전의 Visual Studio 2017에서는 알려진 버그로 인해 Live Unit Testing 빌드가 다음 Win32 PE 헤더 데이터를 포함하는 데 실패할 수 있습니다.For older versions of Visual Studio 2017, there is a known bug that may result in Live Unit Testing builds failing to embed the following Win32 PE Header data:

  • 파일 버전(코드에서 @System.Reflection.AssemblyFileVersionAttribute로 지정됨)File Version (specified by AssemblyFileVersionAttribute in code).

  • Win32 아이콘(명령줄에서 /win32icon:로 지정됨)Win32 Icon (specified by /win32icon: on the command line).

  • Win32 매니페스트(명령줄에서 /win32manifest:로 지정됨)Win32 Manifest (specified by /win32manifest: on the command line).

이러한 값을 사용하는 테스트를 Live Unit testing에서 실행하는 경우 실패할 수 있습니다.Tests that rely on these values may fail when executed by Live Unit testing.

Live Unit testing이 편집하지 않은 경우에도 항상 내 솔루션을 빌드하는 이유는 무엇인가요?Why does Live Unit testing keep building my solution all the time even if I am not making any edits?

대답:Answer:

솔루션의 빌드 프로세스가 솔루션 자체의 일부인 소스 코드를 생성하고 빌드 대상 파일에 적절한 입력 및 출력이 지정되지 않은 경우에 발생할 수 있습니다.This can happen if the build process of your solution generates source code that is part of the solution itself, and your build target files do not have appropriate inputs and outputs specified. 대상에는 입력 및 출력의 목록이 지정되었으므로 MSBuild는 적절한 최신 검사를 수행하고 새 빌드가 필요한지 여부를 확인할 수 있습니다.Targets should be given a list of inputs and outputs so that MSBuild can perform the appropriate up-to-date checks and determine whether a new build is required.

Live Unit Testing은 원본 파일이 변경되었음을 감지할 때마다 빌드하기 시작합니다.Live Unit Testing starts a build whenever it detects that source files have changed. 솔루션의 빌드가 원본 파일을 생성하기 때문에 Live Unit Testing은 빌드 무한 루프로 진행됩니다.Because the build of your solution generates source files, Live Unit Testing will get into an infinite build loop. 그러나 (이전 빌드에서 새로 생성된 원본 파일을 감지한 후에) Live Unit Testing에서 두 번째 빌드를 시작하는 시기를 대상의 입력 및 출력이 확인하면 입력 및 출력 검사는 모든 항목이 최신 상태라고 표시하기 때문에 루프를 중단시킵니다.If, however, the inputs and outputs of the target are checked when Live Unit Testing starts the second build (after detecting the newly generated source files from the previous build), it will break out of the loop because the inputs and outputs checks will indicate that everything is up-to-date.

Live Unit testing은 Lightweight 솔루션 로드 기능과 어떻게 호환되나요?How does Live Unit testing work with the Lightweight Solution Load feature?

대답:Answer:

Live Unit Testing은 현재 경량 솔루션 로드 기능에서 제대로 작동하지 않습니다.Live Unit Testing currently doesn't work well with the Lightweight Solution load feature. 하나 이상의 테스트 프로젝트를 로드한 후에만 작동합니다.It works only after at least one of the test projects is loaded. 그 전에는 현재 Live Unit Testing이 로드 중인 테스트 어댑터(MSTest, xUnit 또는 NUnit)를 참조하는 하나 이상의 테스트 프로젝터에 종속되어 있으므로 작동하지 않습니다.Until then it won't work because currently Live Unit Testing is dependent on at least one of the test projects referencing a test adapter (MSTest, xUnit or NUnit) being loaded.

Live Unit Testing이 테스트에서 만든 새 프로세스의 검사를 캡처하지 않는 이유는 무엇인가요?Why does Live Unit Testing does not capture coverage from a new process created by a test?

대답:Answer:

이는 알려진 문제이며 Visual Studio 2017의 후속 업데이트에서 수정됩니다.This is a known issue and should be fixed in a subsequent update of Visual Studio 2017.

라이브 테스트 집합에서 테스트를 포함하거나 제외한 후에 아무것도 발생하지 않은 이유는 무엇인가요?Why does nothing happen after I include or exclude tests from the Live Test set?

대답:Answer:

이 문제는 해결되었으며 Visual Studio 2017 버전 15.3에 없습니다.This issue is fixed and does not exist in Visual Studio 2017 version 15.3. 이 버전의 Visual Studio로 업그레이드하세요.Upgrade to this version of Visual Studio.

이것은 Visual Studio 2017의 이전 버전에서 알려진 문제입니다.For older versions of Visual Studio 2017, this is a known issue. 이 문제를 해결하기 위해 테스트를 포함하거나 제외한 후에 모든 파일을 편집해야 합니다.To work around this issue, you will need to make an edit to any file after you have included or excluded tests.

Live Unit Testing 및 편집기 아이콘Live Unit Testing and editor icons

Live Unit Testing이 출력 창의 메시지를 기반으로 한 테스트를 실행하는 것처럼 보이는데 편집기에서 아이콘을 확인할 수 없는 이유는 무엇인가요?Why do I not see any icons in the editor even though Live Unit Testing seems to be running the tests based on the messages in the output window?

대답:Answer:

Live Unit Testing이 작동하는 어셈블리가 어떤 이유로든 계측되지 않는 경우에 발생합니다.This happens if the assemblies that Live Unit Testing is operating on are not instrumented for any reason. 예를 들어 Live Unit Testing은 <UseHostCompilerIfAvailable>false</UseHostCompilerIfAvailable>로 설정된 프로젝트와 호환되지 않습니다.For example, Live Unit Testing is not compatible with projects that set <UseHostCompilerIfAvailable>false</UseHostCompilerIfAvailable>. 이 경우에 Live Unit Testing이 작동하기 위해 이 설정을 제거하거나 true로 변경하도록 빌드 프로세스를 업데이트해야 합니다.In this case, your build process needs to be updated to either remove this setting or to change it to true for Live Unit Testing to work.

파일 버그 보고서에 대한 자세한 로그를 수집하려면 어떻게 해야 하나요?How do I collect more detailed logs to file bug reports?

대답:Answer:

자세한 로그를 수집하려면 몇 가지 작업을 수행할 수 있습니다.You can do several things to collect more detailed logs:

  • 도구, 옵션, Live Unit Testing으로 이동하여 로깅 옵션을 자세한 정보로 변경합니다.Go to Tools, Options, Live Unit Testing and change the logging option to Verbose. 이렇게 하면 출력 창에 자세한 로그가 표시됩니다.This causes more detailed logs to be shown in the output window.

  • LiveUnitTesting_BuildLog 사용자 환경 변수를 MSBuild 로그를 캡처하는 데 사용하려는 파일의 이름으로 설정합니다.Set the LiveUnitTesting_BuildLog user environment variable to the name of the file you want to use to capture the MSBuild log. Live Unit Testing 빌드의 자세한 MSBuild 로그 메시지를 해당 파일에서 검색할 수 있습니다.Detailed MSBuild log messages from Live Unit Testing builds can then be retrieved from that file.

  • LiveUnitTesting_TestPlatformLog 사용자 환경 변수를 1로 설정하여 테스트 플랫폼 로그를 캡처합니다.Set the LiveUnitTesting_TestPlatformLog user environment variable to 1 to capture the Test Platform log. Live Unit Testing의 자세한 테스트 플랫폼 로그 메시지를 [Solution Root]\.vs\[Solution Name]\log\[VisualStudio Process ID]에서 검색할 수 있습니다.Detailed Test Platform log messages from Live Unit Testing runs can then be retrieved from [Solution Root]\.vs\[Solution Name]\log\[VisualStudio Process ID].

  • VS_UTE_DIAGNOSTICS이라는 사용자 수준 환경 변수를 만들고 1(또는 다른 값)로 설정한 다음 Visual Studio를 다시 시작합니다.Create a user-level environment variable named VS_UTE_DIAGNOSTICS and set it to 1 (or any value) and restart Visual Studio. 이제 Visual Studio의 출력 - 테스트 탭에서 여러 로깅이 표시됩니다.Now you should see lots of logging in the Output - Tests tab in Visual Studio.

참고 항목See also

유닛 테스트Live Unit Testing