从 .NET 5 升级到 .NET 6 后 XUnit 测试不再工作(问答)

XUnit Tests No Longer Working After Upgrade From .NET 5 To .NET 6 (Q & A)

我有一个 xUnit 单元测试项目。在 .NET 5 中一切正常。

在 Visual Studio 2022 年,我将 csproj 中的 .NET 版本更改为 .NET 6,如下所示。

在此之后,测试建立但不再 运行。

输出中没有信息 window。测试资源管理器只是说它不会 运行 测试, 'unexpected error detected'.

我应该怎么做才能解决这个问题?

我创建了一个新项目并将 csproj 文件与我的旧项目进行了比较。有一些差异

首先,我需要为 Microsoft.NET.Test.Sdk 添加 nuget 包(在我的例子中,版本 16.11.0)。这似乎解决了问题。

我还注意到在第一个 PropertyGroup 中我遗漏了几个属性。我也加了那些。但是,只需添加 Microsoft.NET.Test.Sdk 就可以解决问题。

在我的例子中,我从 NUnit 更改为 XUnit,还需要添加 xunit.runner.visualstudio nuget 包