【问题标题】:why my test project doesn't appear on test explorer为什么我的测试项目没有出现在测试资源管理器中
【发布时间】:2013-05-05 13:48:17
【问题描述】:

我正在使用 VS2012 (v110) 我创建了一个简单的 dll 应用程序,只有 1 个函数和一个测试项目来测试 dll 函数。我将两个项目都设置为 win32 的调试版本,并尝试清理和重建这两个项目,但我没有看到要在测试资源管理器窗口上运行任何测试。

我也已经在测试项目中引用了 Dll 项目。

为什么测试资源管理器窗口中没有显示任何内容?

【问题讨论】:

  • 我们怎么知道?贴一些代码。
  • 我也有类似的问题:stackoverflow.com/questions/16031728/…
  • 代码是C++、VB.Net还是C#?
  • @user1916893 是的,我也有同样的问题,我不知道是什么原因造成的
  • 请注意,TestClass 必须是公共的,以便测试资源管理器显示它

标签: c# c++ vb.net unit-testing visual-studio-2012


【解决方案1】:

实际上 MSTest 不适用于简单的类库项目。 您必须创建一个单元测试项目并将您的测试放在那里。

如果您使用 NUnit 等其他测试框架,则可以使用普通类库。然后,您可以使用 NUnit 在 VS 外部运行测试,或使用 ReSharper 等工具在 VS 内部运行这些测试

【讨论】:

  • 谢谢,我正在为非托管 C++ 编写单元测试,但我不知道为什么测试方法从未出现在测试资源管理器中
  • 如果你不小心把你的项目变成了一个类库而不是一个单元测试库,并且想在不重新创建项目的情况下改变它,去这里:pmichaels.net/2017/04/02/…
【解决方案2】:

您似乎使用了 MSTest 以外的一些测试框架。如果您想将测试资源管理器用于其他一些框架,您也应该安装它的运行器。例如 NUnit 需要在 VS.NET 中安装它的测试适配器和扩展

here for more

【讨论】:

    【解决方案3】:

    您应该能够修改现有的类库项目,以让 mstest 将其识别为测试项目,方法是修改 .csproj 文件中的 ProjectTypeGuids,如本答案 How to get VS2010 to recognize my mstests generated by SpecFlow? 中所述(查找列出特定guids 而不是当前接受的答案,即只创建一个新项目。)

    【讨论】:

      【解决方案4】:

      遇到了类似的问题。解决了。我一直在将测试项目添加到我的 VS 2012 解决方案中,并且测试没有出现在测试资源管理器中。问题是测试项目位于 IIS inetpub\wwwroot 文件夹中,该文件夹没有 Windows 用户权限来修改它。添加解决方案文件夹 Windows 用户权限来修改它解决了问题。测试现在在测试资源管理器中可见并且能够被调试。我假设由 windows 用户运行的 vstest.discoveryengine.exe 进程无权访问测试项目文件

      【讨论】:

        猜你喜欢
        • 2020-01-23
        • 1970-01-01
        • 1970-01-01
        • 2015-10-22
        • 1970-01-01
        • 1970-01-01
        • 2019-06-23
        • 2021-11-05
        • 1970-01-01
        相关资源
        最近更新 更多