在Visual Studio 2017中,除非以管理员身份运行,否则无法发现测试资源管理器。

4

我正在使用 Visual Studio 2017,但测试运行器无法发现单元测试,除非将 Visual Studio 以管理员身份运行。在我的新工作场所几乎不可能以管理员身份运行。

因此...

问:如何使测试资源管理器在非管理员状态下发现单元测试?

enter image description here

更新:
我已确认以下内容...

  • 积极: 单元测试项目已设置为构建
  • 积极: 测试项目是真正的单元测试项目(带有魔法guid)
  • 消极: 在VS2017社区版中,测试视图不是可用选项

enter image description here


您不需要成为管理员。您正在使用VS2017的最新更新吗?您正在使用Resharper吗?如果是,请确保您也使用了最新的更新。 - Matthew Watson
你检查过 Visual Studio 写入单元测试的文件夹/目录的权限了吗?我很确定 IDE 会写入一个 TestResults 文件夹,而且它可能会在 %appdata% 中缓存数据。这只是一个想法。Visual Studio 的日志文件可能会给你一些启示。请参见:调试 Visual Studio 崩溃 - Pressacco
@Matthew Watson 是的,VS2017已更新(嗯...没有显示新的更新)。这里不使用 ReSharper,也禁止使用它。 - Prisoner ZERO
1个回答

3
这是一个关于“未找到测试”问题的各种修复方法总结。
你安装了2个版本的Microsoft.TestAdapter(参考 Microsoft.VisualStudio.TestPlatform.TestFramework 和 Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions)。请检查NuGet包管理器,版本1.1.11无法使用,需要使用1.1.18(在撰写时)才能正常工作。
此外,请检查您的Bin文件夹和/或Build Agents引用文件夹中是否有重复版本。
确保测试项目已设置为生成。如果测试程序集未被生成,VS将无法找到任何测试: enter image description here
测试项目需要使用Magic GUIDs:

C#:

{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}  

VB:

{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}

在此输入图片描述


试图重新运行被忽略的测试。如果删除 Ignore 标签,将出现相同的错误消息。它不会自动重新启用测试。本文介绍了如何进行最后一步。http://richallen.blogspot.com/2008/05/ms-test-re-enabling-ignored-tests.html

即:

打开 Test List 编辑器,选择被忽略的测试,右键单击选择上下文菜单中的“启用”。

在此输入图片描述


确保您的方法属于带有 [TestClass] 属性的类,并且该方法标记有 [TestMethod] 属性。


  • 使用 Test View 查找您的测试。 Test View
  • 打开属性窗口(F4),确保测试已启用。 Enabled

有些人意外地添加了类库项目而不是测试项目。在类库中运行测试是行不通的,必须是测试项目,可能是因为神奇的 GUID


检查解决方案是否在 64 位上运行。如果是,请更改为 x86。


将测试标记为静态会导致它们无法出现在测试列表中。


关闭 Visual Studio 并删除 .vsmdi(visual studio 测试元数据)文件。这将被重新生成。


我在单元测试项目中没有得到与你相同的属性列表...你是如何得到那个列表的?(我使用的是VS2017) - Prisoner ZERO
嗨,我正在使用vs2017企业版。你能给我更多信息吗?你确认了上述所有内容吗?只有项目属性不同是吗?你有一个单元测试项目,而不是一个类库对吧? - Jeremy Thompson
我更新了问题 - 只有“文本资源管理器”窗口选项可用。 - Prisoner ZERO
没问题,那你当时就不会禁用它们。请你做三件事:1)在尝试运行测试时发布输出窗口的内容,2)发布测试类代码,3)运行ProcessMonitor跟踪并快速重现管理员和非管理员的问题。将两个跟踪保存为CSV文件,并使用您喜欢的DiffMerge工具进行比较,然后编辑您的问题并添加值得注意的信息。 - Jeremy Thompson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接