Visual Studio /mstest如何识别测试项目?

19
说(完全假设)我意外将一个单元测试项目添加为“类库”类型到VS2010解决方案中。然后,我已经将运行它所需的程序集添加为一个单元测试项目,但是当我点击“在解决方案中运行所有测试”时,MSTest不会选中它。这里有什么标准?
我有几个理论,但都失败了:
- .testsettings文件中的某些内容(据我所见,没有任何程序集的引用) - .SLN文件中的某些内容(找不到任何内容) - AssemblyInfo.cs中的某些内容(不是的) - 通过引用(...)UnitTestFramwork.dll隐式地实现(显然不是)
有人知道吗?
3个回答

34
在项目文件中,有一个名为ProjectTypeGuids的XML元素,其中包含几个表示测试项目的GUID。以下是示例。
<Project>
  <PropertyGroup>
    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
  </PropertyGroup>
</Project>

这是一份 Visual Studio 2010 可识别的项目类型 GUID 列表:http://onlinecoder.blogspot.com/2009/09/visual-studio-projects-project-type.html

在上面的示例中,它显示该项目的类型为TestWindows(C#)


3
我发现要获取Flask图标,我还需要添加<TestProjectType>UnitTest</TestProjectType> - Ruskin
2
顺便说一句,即使是在VS2019中,这种情况仍然存在了10年。 - Serge Wautier

4

如果有人需要帮助,我有一个相反的问题 - 我错误地把项目添加为单元测试。要将类型更改回普通类库,只需完全删除其他答案中提到的ProjectTypeGuids标签,VS会自动添加正确的标签。


3
  1. 在解决方案资源管理器中,右键单击项目名称,选择取消加载项目
  2. 然后再次右键单击项目名称,选择编辑ProjectName.csproj
  3. 找到ProjectTypeGuids元素和以下代码。(如果您找不到ProjectTypeGuids元素,请插入它)

    <Project> <PropertyGroup> <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB}; {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} </ProjectTypeGuids> </PropertyGroup> </Project> .

  4. 保存更改,右键单击项目,然后选择重新加载项目。


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