Visual Studio Test Explorer无法在已编译的测试项目中运行测试

问题描述 投票:3回答:2

我正努力让我的单元测试工作。我已经和这个问题搏斗了好几个小时了,我没有解释为什么事情不起作用。我在我的代码库上有一个相当重要的重构,并且已经完成并修复了所有的单元测试。测试项目构建,它输出一个新的单元测试dll。但是,当我在测试资源管理器中运行测试时,我收到以下消息:

[2/27/2019 5:08:05 PM警告] [MSTest] [发现] [C:\ pathtotest.dll]无法从程序集C:\ pathtotest.dll发现测试。原因:无法加载文件或程序集'System.Runtime,Version = 4.1.2.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。该系统找不到指定的文件。

[2/27/2019 5:08:05 PM警告]没有测试匹配C:\ pathtotest.dll中给定的测试用例过滤器FullyQualifiedName=<namespace.namespace...testmethod>

这就是我所知道的:

  • 我最近更新了Visual Studio(在过去两周内,我不记得我什么时候做的)。
  • 测试项目中的所有软件包都已更新,并且正在运行最新版本的软件包。
  • 我有另一个单元测试项目是.Net Core 2.1,这是.Net Framework 4.7.2。另一个项目有效。

其他帖子提供的一些建议是确保您的测试体系结构正确并删除%TEMP%中的文件夹(不记得确切的名称,除了是关于VisualStudioExtensions的内容)。他们建议删除的文件夹在%TEMP%中找不到,我尝试在两个体系结构上运行我的测试,结果相同。

所以下一步是进行健全性测试并确保构建的测试dll存在。确实如此。

此时我准备开始一个新的测试项目,并逐个复制粘贴所有测试,看看是否有人抛出了一个无声错误。我用自己的Google-fu技能找不到任何有用的信息,我希望有人可以尝试一些有用的见解或技巧。

c# visual-studio-2017 mstest
2个回答
3
投票

从上面的评论:

使用这个C:\pathtotest.dll

检查它是否是32bit or 64bit运行时。

大多数情况下使用32bit dll。

希望能帮助到你


1
投票

我在现有解决方案中遇到了一个全新的测试项目的类似问题 - 我的所有其他测试项目都已正确编译和测试,但新的测试项目反复出现错误:

没有测试匹配给定的测试用例过滤器......

答案来自这篇文章VSTest: A testsettings file or a runsettings with a ForcedLegacyMode set to true is not supported with the MSTest V2 Adapter. No test is available,它建议关闭testsettings文件,该文件以某种方式在新项目中被选中。

一旦我在Visual Studio中取消选择测试 - >测试设置 - > c:... \ Repos ... testsettings选项,测试就可以运行了。

© www.soinside.com 2019 - 2024. All rights reserved.