将 .NET 标准库添加到 .NET Framework 项目后,测试未显示在测试资源管理器中

Tests not showing up in test explorer after adding .NET standard library to .NET framework project

在我将 .NET 标准库添加到 .NET Framework 4.6.1 web api 2 项目后,测试资源管理器中未显示任何测试。 (我正在使用 MSTest)

如果我删除了 .NET 标准库以及添加它时它所做的所有应用程序和 Web 配置更改,测试将再次出现。

我的解决方案包括:

我做了什么:

  1. 向我的网站添加了 .NET 标准库api 2 项目(项目 A)
  2. 遵循 this microsoft article(最后一步)并在网络应用程序中启用了自动绑定重定向
  3. 这在我的主要 web.config 和我的单元测试项目 app.config 中添加了很多程序集重定向。
  4. this github thread 之后,我将以下内容添加到我的单元测试项目(项目 B)中:

<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>

我没有启用 github 问题中提到的 PackageReference,但我的 WebAPI 项目工作正常。只是我的单元测试从测试资源管理器中消失了。

我尝试了 this question 的解决方案,但没有用。

您还需要将 .NET Standard 库添加到测试项目本身。

由于Web API 项目等经典项目不支持传递引用,您还需要将新项目添加到测试项目中。然后测试项目的构建逻辑将看到 .NET Standard 引用并添加兼容性库并执行绑定重定向生成(由于您添加的属性)。