---
title: v4 to v5 migration
description: 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

```csharp
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/...`.

## Related

- [Compatibility](/docs/reference/compatibility)
- [NuGet packages](/docs/reference/packages)
- [Previous versions](/docs/reference/previous-versions)
