将 .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 配置更改,测试将再次出现。
我的解决方案包括:
- 项目 A - .NET 4.6.1 web api 引用 .NET 标准库
- 项目 B - .NET 4.6.1 单元测试项目;引用 A
我做了什么:
- 向我的网站添加了 .NET 标准库api 2 项目(项目 A)
- 遵循 this microsoft article(最后一步)并在网络应用程序中启用了自动绑定重定向
- 这在我的主要 web.config 和我的单元测试项目 app.config 中添加了很多程序集重定向。
- 在 this github thread 之后,我将以下内容添加到我的单元测试项目(项目 B)中:
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
我没有启用 github 问题中提到的 PackageReference,但我的 WebAPI 项目工作正常。只是我的单元测试从测试资源管理器中消失了。
我尝试了 this question 的解决方案,但没有用。
您还需要将 .NET Standard 库添加到测试项目本身。
由于Web API 项目等经典项目不支持传递引用,您还需要将新项目添加到测试项目中。然后测试项目的构建逻辑将看到 .NET Standard 引用并添加兼容性库并执行绑定重定向生成(由于您添加的属性)。
在我将 .NET 标准库添加到 .NET Framework 4.6.1 web api 2 项目后,测试资源管理器中未显示任何测试。 (我正在使用 MSTest)
如果我删除了 .NET 标准库以及添加它时它所做的所有应用程序和 Web 配置更改,测试将再次出现。
我的解决方案包括:
- 项目 A - .NET 4.6.1 web api 引用 .NET 标准库
- 项目 B - .NET 4.6.1 单元测试项目;引用 A
我做了什么:
- 向我的网站添加了 .NET 标准库api 2 项目(项目 A)
- 遵循 this microsoft article(最后一步)并在网络应用程序中启用了自动绑定重定向
- 这在我的主要 web.config 和我的单元测试项目 app.config 中添加了很多程序集重定向。
- 在 this github thread 之后,我将以下内容添加到我的单元测试项目(项目 B)中:
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
我没有启用 github 问题中提到的 PackageReference,但我的 WebAPI 项目工作正常。只是我的单元测试从测试资源管理器中消失了。
我尝试了 this question 的解决方案,但没有用。
您还需要将 .NET Standard 库添加到测试项目本身。
由于Web API 项目等经典项目不支持传递引用,您还需要将新项目添加到测试项目中。然后测试项目的构建逻辑将看到 .NET Standard 引用并添加兼容性库并执行绑定重定向生成(由于您添加的属性)。