Skip to main content

Extensions

As TUnit is built on top of Microsoft.Testing.Platform, it can tap into generic testing extension packages.

Built-In Extensions​

The following extensions are automatically included when you install the TUnit meta package. You don't need to install them separately!

Code Coverage​

Code coverage is provided via the Microsoft.Testing.Extensions.CodeCoverage NuGet package.

✅ Included automatically with the TUnit package - No manual installation needed!

Usage​

Run your tests with the --coverage flag:

# Basic coverage
dotnet run --configuration Release --coverage

# Specify output location
dotnet run --configuration Release --coverage --coverage-output ./coverage/

# Specify output format (cobertura is default)
dotnet run --configuration Release --coverage --coverage-output-format cobertura

# Multiple formats
dotnet run --configuration Release --coverage \
--coverage-output-format cobertura \
--coverage-output-format xml

Important: Coverlet Incompatibility âš ī¸â€‹

If you're migrating from xUnit, NUnit, or MSTest:

  • Remove Coverlet (coverlet.collector or coverlet.msbuild) from your project
  • TUnit uses Microsoft.Testing.Platform (not VSTest), which is incompatible with Coverlet
  • Microsoft.Testing.Extensions.CodeCoverage is the modern replacement and provides the same functionality

Migration Example:

<!-- Remove from your .csproj -->
<PackageReference Include="coverlet.collector" Version="x.x.x" />
<PackageReference Include="coverlet.msbuild" Version="x.x.x" />

<!-- Already included with TUnit meta package -->
<PackageReference Include="TUnit" Version="0.x.x" />

See the migration guides for detailed instructions:

Advanced Configuration​

You can customize coverage with a .runsettings file:

coverage.runsettings:

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="Code Coverage">
<Configuration>
<CodeCoverage>
<ModulePaths>
<Include>
<ModulePath>.*\.dll$</ModulePath>
</Include>
<Exclude>
<ModulePath>.*tests\.dll$</ModulePath>
</Exclude>
</ModulePaths>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>

Use it:

dotnet run --configuration Release --coverage --coverage-settings coverage.runsettings

📚 More Resources:


TRX Test Reports​

TRX reports are provided via the Microsoft.Testing.Extensions.TrxReport NuGet package.

✅ Included automatically with the TUnit package - No manual installation needed!

Usage​

Run your tests with the --report-trx flag:

# Generate TRX report
dotnet run --configuration Release --report-trx

# Specify output location
dotnet run --configuration Release --report-trx --report-trx-filename ./reports/testresults.trx

📚 More Resources:


Optional Extensions​

These extensions are not included with the TUnit package and must be installed manually if needed.

Crash Dump​

Crash dump is an extension to help diagnose unexplained crashes, provided via the Microsoft.Testing.Extensions.CrashDump NuGet package.

More information can be found here

Hang Dump​

Hang dump is an extension to help diagnose unexplained hanging in your test suite, provided via the Microsoft.Testing.Extensions.HangDump NuGet package.

More information can be found here