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:

Live Visual Studio 2017 バージョン 15.3 以降で Live Unit Testing に対して加えられた新機能と機能強化を確認するには、「What's New in 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 は、次の表に示されている 3 つの一般的な単体テスト フレームワークで動作します。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-previewMSTest.TestAdapter 1.1.4-preview MSTest.TestFramework 1.0.5-previewMSTest.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. そのためには、Living Unit Testing を有効にする前に、ソリューションの明示的なビルドを行うか (Visual Studio の最上位メニューから [ビルド][ソリューションのリビルド] を選択)、またはソリューションのパッケージを復元します (ソリューションを右クリックして [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. .NET Core のサポートは、Visual Studio 2017 バージョン 15.3 で最近追加されました。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 での 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.

  • ソリューションの少なくとも 1 つのプロジェクトに、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 プロパティを調べてビルド前/後のカスタム手順を実行するコードを、プロジェクトまたは .targets ファイルに追加できます。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 のビルドから特定のビルド手順 (パッケージの発行や生成など) を削除したり、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 がソリューションのビルドを試みると、次のようなエラー メッセージが表示されるのはなぜですか? "...appears to unconditionally set <OutputPath> or <OutDir>.Live Unit Testing will not execute tests from the output assembly" (... が または を無条件に設定したようです。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>. このような場合、Live Unit Testing もこれらをオーバーライドしてビルド成果物を <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.

[テスト エクスプローラー] ウィンドウと Live Unit Testing では、テストの実行方法はどのように違いますか?How is running tests from Test Explorer window different from running tests in Live Unit Testing?

回答:Answer:

いくつか違いがあります。There are several differences:

  • [テスト エクスプローラー] ウィンドウからテストを実行またはデバッグすると標準バイナリが実行されますが、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 ではテストを実行するための新しいアプリケーション ドメインは作成されませんが、[テスト エクスプローラー] ウィンドウから実行されたテストでは新しいアプリケーション ドメインが作成されます。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 では各テスト アセンブリが順番に実行されるのに対し、[テストを並列で実行する] ボタンを選んで [テスト エクスプローラー] ウィンドウから複数のテストを実行した場合は、並列に実行されます。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 でのテストの探索と実行にはバージョン 2 の TestPlatform が使われますが、[テスト エクスプローラー] ウィンドウではバージョン 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.

  • 現在、テスト エクスプローラーは既定ではシングルスレッド アパートメント (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 において MSTest テストを STA で実行するには、テスト メソッドまたはそれを含むクラスを、MSTest.STAExtensions 1.0.3-beta NuGet パッケージに含まれる <STATestMethod> または <STATestClass> 属性で修飾します。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 での 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.

ソリューション固有の設定では、<xref:System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute?displayProperty=fullName> 属性をプログラムで適用することにより、Live Unit Testing によるインストルメント化からメソッド、プロパティ、クラス、構造体を除外できます。For solution-specific settings, you can apply the <xref:System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute?displayProperty=fullName> 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);
   }
}

Live Unit Testing によってビルドされたインストルメント化されたアセンブリでは Win32 PE ヘッダーが異なるのはなぜですか?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 @System.Reflection.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 が (前のビルドで新しく生成されたソース ファイルを検出した後) 2 回目のビルドを開始するときに、ターゲットの入力と出力を調べる場合は、入力と出力のチェックですべてが最新であることが示されるため、ループから抜け出します。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 はどのように動作しますか?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. テスト プロジェクトを少なくとも 1 つ読み込まないと作動しません。It works only after at least one of the test projects is loaded. プロジェクトを読み込むまで正常に作動しない理由は、Live Unit Testing は 1 つ以上のテスト プロジェクトを利用しなければ、読み込まれるテスト アダプター (MSTest、xUnit、NUnit) を参照できないことにあります。Until then it won't work because Live Unit Testing is dependent on at least one of the test projects referencing a test adapter (MSTest, xUnit or NUnit) being loaded.

注: Visual Studio 2017 バージョン 15.5 以降では、ライトウェイト ソリューション ロードを使用できなくなりました。Note: Lightweight solution load is no longer available in Visual Studio 2017 version 15.5 and later. Visual Studio バージョン 15.5 以降の場合、マネージ コードを含む大規模なソリューションで、ライトウェイト ソリューション ロードなしでも以前よりはるかに速く読み込むことができます。In Visual Studio version 15.5 and later, large solutions that contain managed code load much faster than previously, even without lightweight solution load.

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.

Live Test セットにテストを含めたり、セットからテストを除外した後、何も行われないのはなぜですか?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