Migrate a test project from xUnit v2 to xUnit v3 (2.9.3 to 4.0.0)
A step-by-step migration from xunit 2.9.3 to xunit.v3 4.0.0: package swaps, the OutputType Exe change, IAsyncLifetime returning ValueTask, the Xunit.Abstractions removal, and the CI filter syntax that silently stops matching.