项目中的每个测试都说 "Excluded from Live Unit Testing"?

Every test in project says "Excluded from Live Unit Testing"?

我根据文档添加了测试适配器和框架包 https://docs.microsoft.com/en-us/visualstudio/test/live-unit-testing-faq?view=vs-2017

我在每个测试旁边看到 "beaker" symbol\icon,但悬停显示它已从实时单元测试中排除。

手动测试所有 运行 都很好,我试过右键单击并告诉它包含,但什么也没做。我这里没有手动排除任何代码...

.net 4.7.1 项目

编辑

出现错误

[10:03:48.205 Error] [TestRunner 1] An exception occurred while invoking executor 'executor://mstestadapter/v2': Could not load file or assembly 'System.Xml.ReaderWriter, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. Could not load file or assembly 'System.Xml.ReaderWriter, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

这是一个 4.7.1 项目,正在测试另一个基于 EFCore 的 4.7.1 项目。

我遇到了类似的错误,在 "Live Unit Testing" 类别的输出 window 中,我发现了以下错误:

FatalError - System.AggregateException: One or more errors occurred. ---> System.Exception: Could not load file or assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

我下载了那个 nuget 包的最新版本但没有帮助,我基本上不得不在配置文件中强制使用 4.0.0.0 版本,这没有多大意义,因为实际版本dll是4.1.2.0。无论如何,在那之后我停止并开始实时单元测试,现在它可以正常工作了。希望这有帮助。

<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.0.0.0" />

"Could not load file or assembly" 可能有不同的原因:错误的程序集引用或错误的程序集重定向。

  • 在第一种情况下,您可以添加程序集重定向(FabianVal 的回答)

[0] https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/redirect-assembly-versions

  • 第二种情况,您可以更正或删除重定向。我在 update-package -reinstall 之后引入了错误的重定向,我不得不通过删除错误的重定向来重新编辑 csproj 文件。

快速 grep 可能有助于找到罪魁祸首:get-childitem -recurse *csproj | select-string -patte rn "System.Runtime, Version=4.0.0.0"

对于那些仍然 运行 关注这个问题的人,为我解决的是:

  1. 关闭visual studio
  2. 在文件资源管理器中打开您的解决方案文件夹
  3. 删除 .vs 文件夹(这可能是隐藏的,具体取决于您的设置)
  4. 重新打开解决方案并运行进行实时单元测试。

这会破坏解决方案的一些本地设置,因此请注意这一点。默认启动项目、调试参数等都会丢失

我已经看到这种情况的发生是因为测试项目的平台目标与原始项目不同。

这可以在 Build -> Configuration Manager

下的 Visual Studio 中修复