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

时间:2011-08-10 11:21:03

标签: visual-studio-2010 mstest

假设(100%假设)我不小心将单元测试项目作为项目类型“类库”添加到VS2010解决方案中。然后我添加了将其作为单元测试项目运行所需的程序集,但是当我点击“在解决方案中运行所有测试”时,MSTest将不会接收它。这里的标准是什么?

我有几个理论,到目前为止都失败了:

  • .testsettings文件中的内容(据我所知,此处没有对任何程序集的引用)
  • .SLN文件中的某些内容(找不到任何内容)
  • AssemblyInfo.cs中的东西(不,它不是)
  • 通过引用(...)UnitTestFramwork.dll(Obv not)
  • 来暗示

任何?

3 个答案:

答案 0 :(得分:29)

在项目文件中,有一个名为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

在上面的示例中,它显示项目类型为测试 Windows(C#)

答案 1 :(得分:4)

如果它有助于任何人我遇到了相反的问题 - 我错误地添加了一个项目作为单元测试。要将类型更改回普通的类库,我只是删除了其他答案中提到的ProjectTypeGuids标签,大概是VS放回正确的类。

答案 2 :(得分: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. 保存更改,右键单击项目,然后选择重新加载项目。