Visual Studio 2019 突然需要 nuget Microsoft.NET.Test.Sdk 来运行 xUnit 单元测试

Bah*_*haa 0 .net unit-testing xunit visual-studio nuget

我正在使用 xUnit 来实现测试。我曾经安装 xUnit Visual Studio runner, xunit.runner.visualstudionuget 包来使用 VS GUI 运行测试。

下面是 VS 中依赖树的 xUnit 相关分支。您可以清楚地看到 xUnit VS runner 没有依赖项:

net472 项目的 xUnit 依赖项

Visual Studio 突然要求我安装Microsoft.NET.Test.Sdknuget 以便在 GUI 中运行测试。有谁知道为什么?

笔记:

  • 我已经使用 VS 2019 一年多了,经常尽快更新。问题只发生在昨天。我现在在 v16.7.2 上。

Mr *_*ian 5

xunit.runner.visualstudio version <=期间2.4.1,它已经包含一个依赖项Microsoft.NET.Test.Sdk,而更高的版本2.4.22.4.3删除了该依赖项Microsoft.NET.Test.Sdk

另外,不确定问题是否是由于最近需要此类软件包的VS更新引起的。并且来自默认xunit模板项目,它Microsoft.NET.Test.Sdk默认包含包。所以我认为VS需要这个包。

可能在某些特定情况下,没有这个包就不会报错,但是后续不会出现意外的错误,所以安装这个包。

此外,不确定您是否安装了已经有此类包的xunit.runner.visualstudio版本 <= 2.4.1,然后在 VS Update 期间更新此包。

建议

1)、尝试重新安装xunit.runner.visualstudionuget包,先卸载再安装版本2.4.1

然后,关闭VS Instance,删除.vs解决方案文件夹下的隐藏文件夹binobj文件夹。

2)尝试更改项目的目标框架版本(它将根据目标框架版本安装任何默认的 nuget 包)。

右键单击您的项目属性-->应用程序--> 首先将目标框架更改为其他任何人,然后将其更改回原始框架

在此处输入图片说明

此外,如果这些都不起作用,您应该与我们分享您的项目示例并提供更详细的信息,以便帮助我们更快地解决问题。

更新 1

对于您更新的问题,或者您可以直接在您的项目上安装 nuget 包Microsoft.NET.Test.Sdk

或者将您的项目目标框架更改为net core.

在 csproj 文件中使用它:

<TargetFramework>netcoreapp3.1</TargetFramework>
Run Code Online (Sandbox Code Playgroud)

然后,重建你的项目,你可以看到它下面的依赖。