v4 to v5 migration
Upgrade AutoFixture test projects from 4.18.1 to 5.0.0-rc.1.
1. Pin v5 packages together
Upgrade core and extensions in one step:
| v4 (4.18.1) | v5 (5.0.0-rc.1) |
|---|---|
| AutoFixture | AutoFixture |
| AutoFixture.xUnit2 | AutoFixture.Xunit3 |
| AutoFixture.NUnit3 | AutoFixture.NUnit4 |
| AutoFixture.AutoMoq | AutoFixture.AutoMoq |
| AutoFixture.AutoNSubstitute | AutoFixture.AutoNSubstitute |
| AutoFixture.AutoFakeItEasy | AutoFixture.AutoFakeItEasy |
| AutoFixture.Idioms | AutoFixture.Idioms |
| AutoFixture.SeedExtensions | AutoFixture.SeedExtensions |
Do not mix v4 and v5 assemblies in the same project.
2. Target .NET 8+ for test projects
xUnit.net 3 and NUnit 4 integrations target net8.0. Move test projects from .NET Framework or older .NET versions when possible.
3. Update test attributes
| v4 | v5 |
|---|---|
using AutoFixture.Xunit2 | using AutoFixture.Xunit3 |
using AutoFixture.NUnit3 | using AutoFixture.NUnit4 |
| xUnit 2.x runner | xunit.v3 |
| NUnit 3.x | NUnit 4.x |
Core APIs (Fixture, Create, Build, Customize, Register) stay familiar.
4. Verify restore
var fixture = new Fixture();
var value = fixture.Create<int>();
Assert.NotEqual(default, value);
Load integration assemblies you use (AutoFixture.Xunit3, AutoFixture.AutoMoq, AutoFixture.Idioms, AutoFixture.SeedExtensions, etc.) in the same test project.
5. API reference URLs
v5 links use /api/{packageId}/5-0-0-rc-1/.... v4 docs remain at /api/{packageId}/4-18-1/....