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

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

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

我有一些理论,但到目前为止都失败了:

  • .testsettings 文件中的某些内容(据我所知,这里没有引用任何程序集)
  • .SLN 文件中的某些内容(找不到任何内容)
  • AssemblyInfo.cs 中的某些内容(不,不是)
  • 通过引用 (...)UnitTestFramwork.dll 来隐式(显然不是)

有人吗?

visual-studio-2010 mstest
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#)


4
投票

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


3
投票
  1. 在解决方案资源管理器中,右键单击项目名称并选择 卸载项目
  2. 然后再次右键单击项目名称并选择 Edit ProjectName.csproj
  3. 找到 ProjectTypeGuids 元素和以下代码。(如果找不到 ProjectTypeGuids 元素,只需将其插入即可)

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

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

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