NUnit ランナーの概要
NUnit ランナーは、あらゆるコンテキスト (継続的インテグレーション (CI) パイプライン、CLI、Visual Studio テスト エクスプローラー、VS Code テキスト エクスプローラーなど) でテストを実行するための、VSTest に代わる軽量で移植可能な代替手段です。 NUnit ランナーは NUnit テスト プロジェクトに直接埋め込まれており、テストの実行に必要な他のアプリの依存関係 (vstest.console
や dotnet test
など) はありません。
NUnit ランナーはオープンソースであり、Microsoft.Testing.Platform
ライブラリに基づいて構築されています。 Microsoft.Testing.Platform
のコードは、microsoft/testfx GitHub リポジトリにあります。 NUnit ランナーは、NUnit 5.0.0-beta.2
以降にバンドルされています。
NUnit プロジェクトで NUnit ランナーを有効にする
または、プロジェクト ファイル内で EnableNUnitRunner
プロパティを追加し、OutputType
を Exe
に設定することで、NUnit ランナーを有効にすることもできます。 また、NUnit 5.0.0-beta.2
以降を使用していることを確認する必要もあります。
次のプロジェクト ファイルの例を考えてみましょう。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- Enable the NUnit runner, this is an opt-in feature -->
<EnableNUnitRunner>true</EnableNUnitRunner>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
<PackageReference Include="NUnit" Version="4.1.0" />
<PackageReference Include="NUnit.Analyzers" Version="4.2.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="NUnit3TestAdapter" Version="5.0.0-beta.2" />
<!--
Coverlet collector isn't compatible with NUnit runner, you can
either switch to Microsoft CodeCoverage (as shown below),
or switch to be using coverlet global tool
https://github.com/coverlet-coverage/coverlet#net-global-tool-guide-suffers-from-possible-known-issue
-->
<PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage"
Version="17.10.1" />
</ItemGroup>
</Project>
構成とフィルター
.runsettings
NUnit ランナーは、コマンドライン オプション --settings
を使用した runsettings をサポートしています。 次のコマンドにより例が示されます。
dotnet run
の使用
dotnet run --project Contoso.MyTests -- --settings config.runsettings
dotnet exec
の使用
dotnet exec Contoso.MyTests.dll --settings config.runsettings
または
dotnet Contoso.MyTests.dll --settings config.runsettings
実行可能ファイルを使用:
Contoso.MyTests.exe --settings config.runsettings
テスト フィルター
コマンド ライン オプション --filter
を使用して、シームレスにテスト フィルターを提供できます。 次のコマンドにより例がいくつか示されます。
dotnet run
の使用
dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
dotnet exec
の使用
dotnet exec Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
または
dotnet Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
実行可能ファイルを使用:
Contoso.MyTests.exe --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
.NET