.runsettings ファイルを使用して単体テストを構成するConfigure unit tests by using a .runsettings file

Visual Studio の単体テストは、 .runsettings ファイルを使用して構成できます。Unit tests in Visual Studio can be configured by using a .runsettings file. たとえば、テストが実行される .NET のバージョン、テスト結果のディレクトリ、テストの実行中に収集されるデータを変更できます。For example, you can change the .NET version on which the tests are run, the directory for the test results, or the data that's collected during a test run. .runsettings ファイルをよく使うのは、コード カバレッジ分析をカスタマイズする場合です。A common use of a .runsettings file is to customize code coverage analysis.

コマンド ラインから、IDE から、あるいは Azure Test Plans または Team Foundation Server (TFS) を使用するビルド ワークフローで実行されるテストを実行設定ファイルを使用して構成できます。Run settings files can be used to configure tests that are run from the command line, from the IDE, or in a build workflow using Azure Test Plans or Team Foundation Server (TFS).

実行設定ファイルは省略可能です。Run settings files are optional. 特殊な構成を行う必要がない場合、 .runsettings ファイルは不要です。If you don't require any special configuration, you don't need a .runsettings file.

実行設定ファイルを作成してカスタマイズするCreate a run settings file and customize it

  1. 実行設定ファイルをソリューションに追加します。Add a run settings file to your solution. ソリューション エクスプローラー でソリューションのショートカット メニューを開き、 [追加] > [新しい項目][XML ファイル] の順に選択します。In Solution Explorer, on the shortcut menu of your solution, choose Add > New Item, and select XML File. test.runsettings などの名前でファイルを保存します。Save the file with a name such as test.runsettings.

    ヒント

    拡張子 .runsettings を使用していれば、ファイル名は自由です。The file name doesn't matter, as long as you use the extension .runsettings.

  2. *.runsettings ファイルの例」からの内容を追加し、後続の各セクションの説明に従って、ニーズに合わせてカスタマイズします。Add the content from Example *.runsettings file, and then customize it to your needs as described in the sections that follow.

  3. 次のいずれかの方法を利用し、必要な *.runsettings ファイルを指定します。Specify the *.runsettings file that you want using one of the following methods:

  4. カスタムの実行設定を使用する単体テストを実行します。Run the unit tests to use the custom run settings.

IDE でカスタム設定のオンとオフを切り替える場合、 [テスト][テストの設定] メニューでファイルを選択したり選択解除したりします。If you want to turn the custom settings off and on in the IDE, deselect or select the file in the Test > Test Settings menu.

Visual Studio 2017 でのカスタム設定ファイルがある設定メニュー

IDE でカスタム設定のオンとオフを切り替える場合、 [テスト] メニューでファイルを選択したり選択解除したりします。If you want to turn the custom settings off and on in the IDE, deselect or select the file on the Test menu.

ヒント

ソリューションに複数の .runsettings ファイルを作成し、必要に応じて、いずれかをアクティブなテスト設定ファイルとして選択することができます。You can create more than one .runsettings file in your solution and select one as the active test settings file as needed.

IDE で実行設定ファイルを指定するSpecify a run settings file in the IDE

使用できる方法は、Visual Studio のバージョンによって異なります。The methods available depend on your version of Visual Studio.

IDE で実行設定ファイルを指定するには、 [テスト] > [テストの設定] > [テスト設定ファイルの選択] を選択し、 .runsettings ファイルを選択します。To specify a run settings file in the IDE, select Test > Test Settings > Select Test Settings File, and then select the .runsettings file.

Visual Studio 2017 の [テスト設定ファイルの選択] メニュー

ファイルは、[テストの設定] メニューに表示され、選択または選択解除できます。The file appears on the Test Settings menu, and you can select or deselect it. 選択されている間、実行設定ファイルは、 [コード カバレッジの分析] を選ぶたびに適用されます。While selected, the run settings file applies whenever you select Analyze Code Coverage.

Visual Studio 2019 バージョン 16.4 以降Visual Studio 2019 version 16.4 and later

Visual Studio 2019 バージョン 16.4 以降で実行設定ファイルを指定するには、次の 3 つの方法があります。There are three ways of specifying a run settings file in Visual Studio 2019 version 16.4 and later.

実行設定ファイルを自動検出するAutodetect the run settings file

注意

これは .runsettings という名前のファイルでのみ機能します。This will only work for a file named .runsettings.

実行設定ファイルを自動検出するには、それをソリューションのルートに配置します。To autodetect the run settings file, place it at the root of your solution.

実行設定ファイルの自動検出が有効になっている場合、このファイル内の設定は実行されるすべてのテストに適用されます。If auto detection of run settings files is enabled, the settings in this file are applied across all tests run. runsettings ファイルの自動検出は、次の 2 つの方法で有効にすることができます。You can turn on auto detection of runsettings files using two methods:

  • [ツール][オプション][テスト][runsettings ファイルの自動検出] の順に選択するSelect Tools > Options > Test > Auto Detect runsettings Files

    Visual Studio 2019 での [runsettings ファイルの自動検出] オプション

  • [テスト][実行設定の構成][runsettings ファイルの自動検出] を選択するSelect Test > Configure Run Settings > Auto Detect runsettings Files

    Visual Studio 2019 での [runsettings ファイルの自動検出] メニュー

実行設定ファイルを手動で選択するManually select the run settings file

IDE で、 [テスト] > [実行設定の構成] > [ソリューション全体の runsettings ファイルの選択] を選択し、 .runsettings ファイルを選択します。In the IDE, select Test > Configure Run Settings > Select Solution Wide runsettings File, and then select the .runsettings file.

  • このソリューションのルートに .runsettings ファイルが存在する場合は、このファイルによりオーバーライドされます。このファイルは実行されるすべてのテストに適用されます。This file overrides the .runsettings file at the root of the solution, if one is present, and is applied across all tests run.
  • このファイルの選択は、ローカルにのみ保持されます。This file selection only persists locally.

Visual Studio 2019 の [テスト] の [ソリューション全体の runsettings ファイルの選択] メニュー

ビルド プロパティを設定するSet a build property

プロジェクト ファイルまたは Directory.Build.props ファイルを使用して、プロジェクトにビルド プロパティを追加します。Add a build property to a project through either the project file or a Directory.Build.props file. プロジェクトの実行設定ファイルは、RunSettingsFilePath プロパティによって指定されます。The run settings file for a project is specified by the property RunSettingsFilePath.

  • 現在、プロジェクト レベルの実行設定は、C#、VB、C++、および F# プロジェクトに対してサポートされています。Project-level run settings is currently supported in C#, VB, C++, and F# projects.
  • プロジェクトに対して指定したファイルにより、ソリューションで指定された他のあらゆる実行設定ファイルがオーバーライドされます。A file specified for a project overrides any other run settings file specified in the solution.
  • これらの MSBuild プロパティを使用し、runsettings ファイルのパスを指定できます。These MSBuild properties can be used to specify the path to the runsettings file.

プロジェクトに対して .runsettings ファイルを指定する例:Example of specifying a .runsettings file for a project:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <RunSettingsFilePath>$(MSBuildProjectDirectory)\example.runsettings</RunSettingsFilePath>
  </PropertyGroup>
  ...
</Project>

Visual Studio 2019 バージョン 16.3 以前Visual Studio 2019 version 16.3 and earlier

IDE で実行設定ファイルを指定するには、 [テスト] > [設定ファイルの選択] の順に選択します。To specify a run settings file in the IDE, select Test > Select Settings File. .runsettings ファイルを参照し、選択します。Browse to and select the .runsettings file.

Visual Studio 2019 の [テスト設定ファイルの選択] メニュー

ファイルは、[テスト] メニューに表示され、選択または選択解除できます。The file appears on the Test menu, and you can select or deselect it. 選択されている間、実行設定ファイルは、 [コード カバレッジの分析] を選ぶたびに適用されます。While selected, the run settings file applies whenever you select Analyze Code Coverage.

コマンド ラインから実行設定ファイルを指定するSpecify a run settings file from the command line

コマンド ラインからテストを実行するには、vstest.console.exe を使い、 /Settings パラメーターを使って設定ファイルを指定します。To run tests from the command line, use vstest.console.exe, and specify the settings file by using the /Settings parameter.

  1. Visual Studio 用開発者コマンド プロンプトを開きます。Open Developer Command Prompt for Visual Studio.

  2. 次のようなコマンドを入力します。Enter a command similar to:

    vstest.console.exe MyTestAssembly.dll /EnableCodeCoverage /Settings:CodeCoverage.runsettings
    

    oror

    vstest.console.exe --settings:test.runsettings test.dll
    

詳細については、「VSTest.Console.exe のコマンド ライン オプション」を参照してください。For more information, see VSTest.Console.exe command-line options.

*.runsettings ファイルThe *.runsettings file

.runsettings ファイルは、**RunSettings* 要素内にさまざまな構成要素を含む XML ファイルです。The *.runsettings file is an XML file that contains different configuration elements within the RunSettings element. 後続のセクションでさまざまな要素について説明します。The sections that follow detail the different elements. 完全なサンプルが必要であれば、「*.runsettings ファイルの例」を参照してください。For a complete sample, see Example *.runsettings file.

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <!-- configuration elements -->
</RunSettings>

既定値があるため、各構成要素は省略可能です。Each of the configuration elements is optional because it has a default value.

RunConfiguration 要素RunConfiguration element

<RunConfiguration>
    <MaxCpuCount>1</MaxCpuCount>
    <ResultsDirectory>.\TestResults</ResultsDirectory>
    <TargetPlatform>x86</TargetPlatform>
    <TargetFrameworkVersion>Framework40</TargetFrameworkVersion>
    <TestAdaptersPaths>%SystemDrive%\Temp\foo;%SystemDrive%\Temp\bar</TestAdaptersPaths>
    <TestSessionTimeout>10000</TestSessionTimeout>
    <TreatNoTestsAsError>true</TreatNoTestsAsError>
</RunConfiguration>

RunConfiguration 要素には、次の要素を含めることができます。The RunConfiguration element can include the following elements:

ノードNode DefaultDefault Values
MaxCpuCountMaxCpuCount 11 この設定では、単体テストを実行するときに、マシンで使用可能なコアを使用してテストを並列実行する程度を制御します。This setting controls the degree of parallel test execution when running unit tests using available cores on the machine. テストの実行エンジンは、使用可能な各コア上の別個のプロセスとして起動し、実行するテストが入ったコンテナーを各コアに与えます。The test execution engine starts as a distinct process on each available core, and gives each core a container with tests to run. コンテナーとしては、アセンブリ、DLL、または関連する成果物を指定できます。A container can be an assembly, DLL, or relevant artifact. テスト コンテナーはスケジューリングの単位です。The test container is the scheduling unit. 各コンテナーでは、テストはテスト フレームワークに従って実行されます。In each container, the tests are run according to the test framework. コンテナーが多くある場合、あるコンテナー内のテストの実行を終了したプロセスには、次の使用可能なコンテナーが与えられます。If there are many containers, then as processes finish executing the tests in a container, they're given the next available container.

MaxCpuCount には次の値を指定することができます。MaxCpuCount can be:

n。ここで n は、1 以上、コアの数以下です。最大 n 個のプロセスが起動されますn, where 1 <= n <= number of cores: up to n processes are launched

n。ここで n はその他の値です。起動するプロセスの数は、利用可能なコアの数まで指定できます。n, where n = any other value: the number of processes launched can be up to the number of available cores. たとえば、"n = 0" と設定すると、環境に基づいて起動するプロセスの最適な数がプラットフォームによって自動的に決定されます。For instance, set n=0 to let the platform automatically decide the optimal number of processes to launch based on the environment.
ResultsDirectoryResultsDirectory テスト結果が配置されるディレクトリ。The directory where test results are placed. パスは .runsettings ファイルが含まれるディレクトリの相対パスになります。The path is relative to the directory that contains .runsettings file.
TargetFrameworkVersionTargetFrameworkVersion Framework40Framework40 .NET Core ソースの場合は FrameworkCore10、UWP ベースのソースの場合は FrameworkUap10、.NET Framework 4.5 以降の場合は Framework45、.NET Framework 4.0 の場合は Framework40、.NET Framework 3.5 の場合は Framework35FrameworkCore10 for .NET Core sources, FrameworkUap10 for UWP-based sources, Framework45 for .NET Framework 4.5 and higher, Framework40 for .NET Framework 4.0, and Framework35 for .NET Framework 3.5.

この設定では、テストを検出して実行するために使用される単体テスト フレームワークのバージョンを指定します。This setting specifies the version of the unit test framework used to discover and execute the tests. これは、単体テスト プロジェクトのビルド プロパティで指定した .NET プラットフォームのバージョンと異なっていてもかまいません。It can be different from the version of the .NET platform that you specify in the build properties of the unit test project.

TargetFrameworkVersion 要素を .runsettings ファイルから省略した場合、フレームワークのバージョンはビルド済みバイナリに基づいてプラットフォームにより自動的に決定されます。If you omit the TargetFrameworkVersion element from the .runsettings file, the platform automatically determines the framework version based on the built binaries.
TargetPlatformTargetPlatform x86x86 x86、x64x86, x64
TreatTestAdapterErrorsAsWarningsTreatTestAdapterErrorsAsWarnings Falsefalse false、truefalse, true
TestAdaptersPathsTestAdaptersPaths TestAdapter が配置されているディレクトリの 1 つまたは複数のパスOne or more paths to the directory where the TestAdapters are located
TestSessionTimeoutTestSessionTimeout 指定されたタイムアウトを超えたときにユーザーがテスト セッションを終了できるようにします。Allows users to terminate a test session when it exceeds a given timeout. タイムアウトを設定すると、リソースが適切に消費され、テスト セッションが設定された時間に制限されます。Setting a timeout ensures that resources are well consumed and test sessions are constrained to a set time. この設定は、Visual Studio 2017 バージョン 15.5 以降で使用できます。The setting is available in Visual Studio 2017 version 15.5 and later.
DotnetHostPathDotnetHostPath testhost を実行するために使用される dotnet host へのカスタム パスを指定します。Specify a custom path to dotnet host that is used to run the testhost. これは、dotnet/runtime リポジトリをビルドする場合など、独自の dotnet をビルドするときに便利です。This is useful when you are building your own dotnet, for example when building the dotnet/runtime repository. このオプションを指定すると、testhost.exe の検索がスキップされ、常に testhost.dll が使用されます。Specifying this option will skip looking for testhost.exe, and will always use the testhost.dll.
TreatNoTestsAsErrorTreatNoTestsAsError falsefalse true または falsetrue or false
テストが検出されなかった場合の終了コードを定義するブール値を指定します。Specify a Boolean value, which defines the exit code when no tests are discovered. 値が true で、テストが検出されない場合、ゼロ以外の終了コードが返されます。If the value is true and no tests are discovered, a non-zero exit code is returned. それ以外の場合、0 が返されます。Otherwise, zero is returned.

DataCollectors 要素 (診断データ アダプター)DataCollectors element (diagnostic data adapters)

DataCollectors 要素は、診断データ アダプターの設定を指定します。The DataCollectors element specifies settings of diagnostic data adapters. 診断データ アダプターは、テスト対象の環境とアプリケーションに関する追加情報を収集します。Diagnostic data adapters gather additional information about the environment and the application under test. 各アダプターには既定の設定があるため、既定値を使用しない場合にのみ設定を指定する必要があります。Each adapter has default settings, and you only have to provide settings if you don't want to use the defaults.

<DataCollectionRunSettings>
  <DataCollectors>
    <!-- data collectors -->
  </DataCollectors>
</DataCollectionRunSettings>

CodeCoverage データ コレクターCodeCoverage data collector

コード カバレッジ データ コレクターは、アプリケーション コードのどの部分がテストで実行されたかを示すログを作成します。The code coverage data collector creates a log of which parts of the application code have been exercised in the test. コード カバレッジの設定のカスタマイズの詳細については、「コード カバレッジ分析のカスタマイズ」を参照してください。For detailed information about customizing the settings for code coverage, see Customize code coverage analysis.

<DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
  <Configuration>
    <CodeCoverage>
      <ModulePaths>
        <Exclude>
          <ModulePath>.*CPPUnitTestFramework.*</ModulePath>
        </Exclude>
      </ModulePaths>

      <UseVerifiableInstrumentation>True</UseVerifiableInstrumentation>
      <AllowLowIntegrityProcesses>True</AllowLowIntegrityProcesses>
      <CollectFromChildProcesses>True</CollectFromChildProcesses>
      <CollectAspDotNet>False</CollectAspDotNet>
    </CodeCoverage>
  </Configuration>
</DataCollector>

VideoRecorder データ コレクターVideoRecorder data collector

ビデオ データ コレクターは、テストが実行されたときに、画面記録をキャプチャします。The video data collector captures a screen recording when tests are run. この記録は、UI テストのトラブルシューティングに役立ちます。This recording is useful for troubleshooting UI tests. ビデオ データ コレクターは、Visual Studio 2017 バージョン 15.5 以降で使用できます。The video data collector is available in Visual Studio 2017 version 15.5 and later. このデータ コレクターの構成例が必要であれば、「*.runsettings ファイルの例」を参照してください。For an example of configuring this data collector, see the Example *.runsettings file.

他の種類の診断データ アダプターをカスタマイズするには、テスト設定ファイルを使用します。To customize any other type of diagnostic data adapters, use a test settings file.

Blame データ コレクターBlame data collector

このオプションは、テスト ホストがクラッシュする原因となる問題のあるテストを分離するのに役立ちます。This option can help you isolate a problematic test that causes a test host crash. コレクターを実行すると、出力ファイル (Sequence.xml) が TestResults に作成されます。これには、クラッシュ前のテストの実行順序がキャプチャされます。Running the collector creates an output file (Sequence.xml) in TestResults, which captures the order of execution of the test before the crash.

<DataCollector friendlyName="blame" enabled="True">
</DataCollector>

TestRunParametersTestRunParameters

<TestRunParameters>
    <Parameter name="webAppUrl" value="http://localhost" />
    <Parameter name="docsUrl" value="https://docs.microsoft.com" />
</TestRunParameters>

テスト実行パラメーターでは、実行時にテストで使用できる変数と値の定義方法が指定します。Test run parameters provide a way to define variables and values that are available to the tests at run time. MSTest TestContext.Properties プロパティ (または NUnit TestContext) を使用してパラメーターにアクセスします。Access the parameters using the MSTest TestContext.Properties property (or the NUnit TestContext):

private string _appUrl;
public TestContext TestContext { get; set; }

[TestMethod] // [Test] for NUnit
public void HomePageTest()
{
    string _appURL = TestContext.Properties["webAppUrl"];
}

テスト実行パラメーターを使用するには、パブリックの TestContext プロパティをテスト クラスに追加します。To use test run parameters, add a public TestContext property to your test class.

LoggerRunSettings 要素LoggerRunSettings element

LoggerRunSettings セクションによって、テスト実行に使用される 1 つ以上のロガーが定義されます。The LoggerRunSettings section defines one or more loggers to be used for the test run. 最も一般的なロガーは、コンソール、Visual Studio テスト結果ファイル (trx)、html です。The most common loggers are console, Visual Studio Test Results File (trx), and html.

<LoggerRunSettings>
    <Loggers>
      <Logger friendlyName="console" enabled="True">
        <Configuration>
            <Verbosity>quiet</Verbosity>
        </Configuration>
      </Logger>
      <Logger friendlyName="trx" enabled="True">
        <Configuration>
          <LogFileName>foo.trx</LogFileName>
        </Configuration>
      </Logger>
      <Logger friendlyName="html" enabled="True">
        <Configuration>
          <LogFileName>foo.html</LogFileName>
        </Configuration>
      </Logger>
    </Loggers>
  </LoggerRunSettings>

MSTest 要素MSTest element

これらは、 TestMethodAttribute 属性を持つテスト メソッドを実行するテスト アダプターに固有の設定です。These settings are specific to the test adapter that runs test methods that have the TestMethodAttribute attribute.

<MSTest>
    <MapInconclusiveToFailed>True</MapInconclusiveToFailed>
    <CaptureTraceOutput>false</CaptureTraceOutput>
    <DeleteDeploymentDirectoryAfterTestRunIsComplete>False</DeleteDeploymentDirectoryAfterTestRunIsComplete>
    <DeploymentEnabled>False</DeploymentEnabled>
    <AssemblyResolution>
      <Directory path="D:\myfolder\bin\" includeSubDirectories="false"/>
    </AssemblyResolution>
</MSTest>
構成Configuration DefaultDefault Values
ForcedLegacyModeForcedLegacyMode Falsefalse Visual Studio 2012 で、MSTest アダプターは処理速度を向上させ、よりスケーラブルになるように最適化されました。In Visual Studio 2012, the MSTest adapter was optimized to make it faster and more scalable. テストが実行される順序などの一部の動作は、Visual Studio の以前のエディションでの動作と完全に同じではない場合もあります。Some behavior, such as the order in which tests are run, might not be exactly as it was in previous editions of Visual Studio. 以前のテスト アダプターを使用するには、この値を true に設定します。Set this value to true to use the older test adapter.

たとえば、単体テスト用に指定された app.config ファイルがある場合は、この設定を使用することがあります。For example, you might use this setting if you have an app.config file specified for a unit test.

より新しいアダプターを使用できるように、テストのリファクタリングを検討することをお勧めします。We recommend that you consider refactoring your tests to allow you to use the newer adapter.
IgnoreTestImpactIgnoreTestImpact Falsefalse テストの影響機能は、MSTest で実行したとき、または Microsoft Test Manager (Visual Studio 2017 では非推奨) から実行したときに最近の変更の影響を受けるテストの優先順位を付けます。The test impact feature prioritizes tests that are affected by recent changes, when run in MSTest or from Microsoft Test Manager (deprecated in Visual Studio 2017). この設定は機能を非アクティブ化します。This setting deactivates the feature. 詳細については、「前回のビルド以降に実行する必要があるテストの検索」を参照してください。For more information, see Which tests should be run since a previous build.
SettingsFileSettingsFile ここで、MSTest アダプターで使用するテスト設定ファイルを指定できます。You can specify a test settings file to use with the MSTest adapter here. また、[設定] メニューからテスト設定ファイルを指定することもできます。You can also specify a test settings file from the settings menu.

この値を指定する場合は、 ForcedlegacyModetrue に設定する必要があります。If you specify this value, you must also set the ForcedlegacyMode to true.

<ForcedLegacyMode>true</ForcedLegacyMode>
KeepExecutorAliveAfterLegacyRunKeepExecutorAliveAfterLegacyRun Falsefalse テストの実行が完了した後、MSTest がシャットダウンされます。After a test run is completed, MSTest is shut down. テストの一部として起動されたプロセスも中止されています。Any process that is launched as part of the test is also killed. テスト実行プログラムを中止しない場合は、この値を true に設定します。If you want to keep the test executor alive, set the value to true. たとえば、コード化された UI テストの間にブラウザーの実行を維持するために、この設定を使用できます。For example, you could use this setting to keep the browser running between coded UI tests.
DeploymentEnabledDeploymentEnabled truetrue 値を false に設定すると、テスト メソッドで指定した配置項目が配置ディレクトリにコピーされません。If you set the value to false, deployment items that you've specified in your test method aren't copied to the deployment directory.
CaptureTraceOutputCaptureTraceOutput truetrue Trace.WriteLine を使用して、テスト メソッドからデバッグ トレースに書き込むことができます。You can write to the debug trace from your test method using Trace.WriteLine.
DeleteDeploymentDirectoryAfterTestRunIsCompleteDeleteDeploymentDirectoryAfterTestRunIsComplete truetrue テストの実行後に配置ディレクトリを保持するには、この値を false に設定します。To retain the deployment directory after a test run, set this value to false.
MapInconclusiveToFailedMapInconclusiveToFailed Falsefalse テストが結果不確定の状態で完了した場合は、テスト エクスプローラー でスキップ状態にマップされます。If a test completes with an inconclusive status, it is mapped to the skipped status in Test Explorer. 結果不確定のテストを失敗として表示する場合は、この値を true に設定します。If you want inconclusive tests to be shown as failed, set the value to true.
InProcModeInProcMode Falsefalse テストを MSTest アダプターと同じプロセスで実行する場合は、この値を true に設定します。If you want your tests to be run in the same process as the MSTest adapter, set this value to true. この設定で、わずかにパフォーマンスが向上します。This setting provides a minor performance gain. ただし、あるテストが例外で終了した場合、残りのテストは続行されません。But if a test exits with an exception, the remaining tests don't run.
AssemblyResolutionAssemblyResolution Falsefalse 単体テストを検索して実行する場合、追加のアセンブリへのパスを指定できます。You can specify paths to additional assemblies when finding and running unit tests. たとえば、テスト アセンブリと同じディレクトリにない依存関係アセンブリにこれらのパスを使用します。For example, use these paths for dependency assemblies that aren't in the same directory as the test assembly. パスを指定するには、Directory Path 要素を使用します。To specify a path, use a Directory Path element. パスには環境変数を含めることができます。Paths can include environment variables.

<AssemblyResolution> <Directory path="D:\myfolder\bin\" includeSubDirectories="false"/> </AssemblyResolution>

.runsettings ファイルの例Example .runsettings file

次の XML は、一般的な .runsettings ファイルの内容を示しています。The following XML shows the contents of a typical .runsettings file. このコードをコピーし、自分のニーズに合わせて編集します。Copy this code and edit it to suit your needs.

ファイルの各要素には既定値があるため、省略可能です。Each element of the file is optional because it has a default value.

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <!-- Configurations that affect the Test Framework -->
  <RunConfiguration>
    <MaxCpuCount>1</MaxCpuCount>
    <!-- Path relative to directory that contains .runsettings file-->
    <ResultsDirectory>.\TestResults</ResultsDirectory>

    <!-- x86 or x64 -->
    <!-- You can also change it from the Test menu; choose "Processor Architecture for AnyCPU Projects" -->
    <TargetPlatform>x86</TargetPlatform>

    <!-- Framework35 | [Framework40] | Framework45 -->
    <TargetFrameworkVersion>Framework40</TargetFrameworkVersion>

    <!-- Path to Test Adapters -->
    <TestAdaptersPaths>%SystemDrive%\Temp\foo;%SystemDrive%\Temp\bar</TestAdaptersPaths>

    <!-- TestSessionTimeout was introduced in Visual Studio 2017 version 15.5 -->
    <!-- Specify timeout in milliseconds. A valid value should be greater than 0 -->
    <TestSessionTimeout>10000</TestSessionTimeout>

    <!-- true or false -->
    <!-- Value that specifies the exit code when no tests are discovered -->
    <TreatNoTestsAsError>true</TreatNoTestsAsError>
  </RunConfiguration>

  <!-- Configurations for data collectors -->
  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
        <Configuration>
          <CodeCoverage>
            <ModulePaths>
              <Exclude>
                <ModulePath>.*CPPUnitTestFramework.*</ModulePath>
              </Exclude>
            </ModulePaths>

            <!-- We recommend you do not change the following values: -->
            <UseVerifiableInstrumentation>True</UseVerifiableInstrumentation>
            <AllowLowIntegrityProcesses>True</AllowLowIntegrityProcesses>
            <CollectFromChildProcesses>True</CollectFromChildProcesses>
            <CollectAspDotNet>False</CollectAspDotNet>

          </CodeCoverage>
        </Configuration>
      </DataCollector>

      <DataCollector uri="datacollector://microsoft/VideoRecorder/1.0" assemblyQualifiedName="Microsoft.VisualStudio.TestTools.DataCollection.VideoRecorder.VideoRecorderDataCollector, Microsoft.VisualStudio.TestTools.DataCollection.VideoRecorder, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" friendlyName="Screen and Voice Recorder">
        <!--Video data collector was introduced in Visual Studio 2017 version 15.5 -->
        <Configuration>
          <!-- Set "sendRecordedMediaForPassedTestCase" to "false" to add video attachments to failed tests only -->
          <MediaRecorder sendRecordedMediaForPassedTestCase="true"  xmlns="">           
            <ScreenCaptureVideo bitRate="512" frameRate="2" quality="20" />
          </MediaRecorder>
        </Configuration>
      </DataCollector>

      <!-- Configuration for blame data collector -->
      <DataCollector friendlyName="blame" enabled="True">
      </DataCollector>

    </DataCollectors>
  </DataCollectionRunSettings>

  <!-- Parameters used by tests at run time -->
  <TestRunParameters>
    <Parameter name="webAppUrl" value="http://localhost" />
    <Parameter name="webAppUserName" value="Admin" />
    <Parameter name="webAppPassword" value="Password" />
  </TestRunParameters>

  <!-- Configuration for loggers -->
  <LoggerRunSettings>
    <Loggers>
      <Logger friendlyName="console" enabled="True">
        <Configuration>
            <Verbosity>quiet</Verbosity>
        </Configuration>
      </Logger>
      <Logger friendlyName="trx" enabled="True">
        <Configuration>
          <LogFileName>foo.trx</LogFileName>
        </Configuration>
      </Logger>
      <Logger friendlyName="html" enabled="True">
        <Configuration>
          <LogFileName>foo.html</LogFileName>
        </Configuration>
      </Logger>
      <Logger friendlyName="blame" enabled="True" />
    </Loggers>
  </LoggerRunSettings>

  <!-- Adapter Specific sections -->

  <!-- MSTest adapter -->
  <MSTest>
    <MapInconclusiveToFailed>True</MapInconclusiveToFailed>
    <CaptureTraceOutput>false</CaptureTraceOutput>
    <DeleteDeploymentDirectoryAfterTestRunIsComplete>False</DeleteDeploymentDirectoryAfterTestRunIsComplete>
    <DeploymentEnabled>False</DeploymentEnabled>
    <AssemblyResolution>
      <Directory path="D:\myfolder\bin\" includeSubDirectories="false"/>
    </AssemblyResolution>
  </MSTest>

</RunSettings>

環境変数を .runsettings ファイルに指定するSpecify environment variables in the .runsettings file

環境変数はテスト ホストとの直接の対話処理が可能な .runsettings ファイルに設定できます。Environment variables can be set in the .runsettings file, which can directly interact with the test host. DOTNET_ROOT のような環境変数の設定を必要とする単純ではないプロジェクトをサポートするには、 .runsettings ファイルに環境変数を指定する必要があります。Specifying environment variables in the .runsettings file is necessary to support nontrivial projects that require setting environment variables like DOTNET_ROOT. これらの変数は、テスト ホスト プロセスの生成中に設定され、ホストで使用できます。These variables are set while spawning the test host process and they are available in the host.

Example

次のコードは、環境変数を渡すサンプルの .runsettings ファイルです。The following code is a sample .runsettings file that passes environment variables:

<?xml version="1.0" encoding="utf-8"?>
<!-- File name extension must be .runsettings -->
<RunSettings>
  <RunConfiguration>
    <EnvironmentVariables>
      <!-- List of environment variables we want to set-->
      <DOTNET_ROOT>C:\ProgramFiles\dotnet</DOTNET_ROOT>
      <SDK_PATH>C:\Codebase\Sdk</SDK_PATH>
    </EnvironmentVariables>
  </RunConfiguration>
</RunSettings>

RunConfiguration ノードには、EnvironmentVariables ノードが含まれている必要があります。The RunConfiguration node should contain an EnvironmentVariables node. 環境変数は、要素名とその値として指定できます。An environment variable can be specified as an element name and its value.

注意

これらの環境変数は、テスト ホストが開始されるときに常に設定される必要があるため、テストは常に別のプロセスで実行する必要があります。Because these environment variables should always be set when the test host is started, the tests should always run in a separate process. このため、テスト ホストが常に呼び出されるよう、環境変数があるときは /InIsolation フラグが設定されます。For this, the /InIsolation flag will be set when there are environment variables so that the test host is always invoked.

関連項目See also