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 --results-directory ./reports --report-trx --report-trx-filename 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