AutoFixture.TUnit
0.1.0-preview0001
Prefix Reserved
dotnet add package AutoFixture.TUnit --version 0.1.0-preview0001
NuGet\Install-Package AutoFixture.TUnit -Version 0.1.0-preview0001
<PackageReference Include="AutoFixture.TUnit" Version="0.1.0-preview0001" />
<PackageVersion Include="AutoFixture.TUnit" Version="0.1.0-preview0001" />
<PackageReference Include="AutoFixture.TUnit" />
paket add AutoFixture.TUnit --version 0.1.0-preview0001
#r "nuget: AutoFixture.TUnit, 0.1.0-preview0001"
#:package AutoFixture.TUnit@0.1.0-preview0001
#addin nuget:?package=AutoFixture.TUnit&version=0.1.0-preview0001&prerelease
#tool nuget:?package=AutoFixture.TUnit&version=0.1.0-preview0001&prerelease
AutoFixture.TUnit
AutoFixture.TUnit integrates AutoFixture with TUnit. Use data-source attributes to generate arguments declaratively so tests stay focused on behavior, not setup.
Full documentation, data-shape reference, and contributing guide: github.com/AutoFixture/AutoFixture.TUnit.
Install
dotnet add package AutoFixture.TUnit
Quick start
[AutoDataSource] fills every parameter with AutoFixture-generated values:
using TUnit;
using TUnit.Assertions;
using AutoFixture.TUnit;
public class Calculator
{
public int Add(int a, int b) => a + b;
}
public class CalculatorTests
{
[Test, AutoDataSource]
public async Task Add_SimpleValues_ReturnsCorrectResult(
Calculator calculator, int a, int b)
{
int result = calculator.Add(a, b);
await Assert.That(result).IsEqualTo(a + b);
}
}
Inline values
[AutoArguments] supplies some arguments; AutoFixture fills the rest:
[Test]
[AutoArguments(5, 8)]
public async Task Add_SpecificValues_ReturnsCorrectResult(
int a, int b, Calculator calculator)
{
await Assert.That(calculator.Add(a, b)).IsEqualTo(13);
}
Prefer [AutoArguments<T>] (C# 11+) when you need a strongly typed single value, especially arrays that must stay one parameter:
[Test, AutoArguments<int[]>(new int[] { 1, 2 })]
public async Task Add_GenericArrayArgument_KeepsArrayAsOneParameter(
int[] values, Calculator calculator)
{
await Assert.That(values).IsEquivalentTo([1, 2]);
await Assert.That(calculator).IsNotNull();
}
Freeze shared instances
Use [Frozen] when several parameters should receive the same instance:
public class Dependency { }
public class Consumer
{
public Dependency Dependency { get; }
public Consumer(Dependency dependency) => Dependency = dependency;
}
public class ConsumerTests
{
[Test, AutoDataSource]
public async Task Consumer_UsesSameDependency(
[Frozen] Dependency dependency, Consumer consumer)
{
await Assert.That(consumer.Dependency).IsSameReferenceAs(dependency);
}
}
Main attributes
| Attribute | Role |
|---|---|
[AutoDataSource] |
Generate all parameters |
[AutoArguments] / [AutoArguments<T>] |
Mix inline values with generated data |
[AutoMemberDataSource] / [AutoMemberDataSource<T>] |
Rows from a static member; remaining parameters are generated |
[AutoClassDataSource] / [AutoClassDataSource<T>] |
Rows from a provider type; remaining parameters are generated |
[CompositeDataSource] |
Compose multiple data-source attributes |
[Frozen], [Greedy], [Modest], [NoAutoProperties], [FavorArrays], [FavorEnumerables], [FavorLists] |
Parameter / construction customizations |
Member and class sources accept the same result shapes as TUnit method data sources (object[] rows, tuples, scalars, Task<T>, IAsyncEnumerable<T>, and more). See the repository README for the full shape table and examples.
License
AutoFixture.TUnit is released under the MIT license.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- AutoFixture (>= 4.18.1)
- TUnit.Core (>= 1.66.8)
-
net10.0
- AutoFixture (>= 4.18.1)
- TUnit.Core (>= 1.66.8)
-
net8.0
- AutoFixture (>= 4.18.1)
- TUnit.Core (>= 1.66.8)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-preview0001 | 54 | 9/7/2026 |