【问题标题】:How does Visual Studio /mstest identify test projects?Visual Studio /mstest 如何识别测试项目?
【发布时间】:2013-04-12 22:46:23
【问题描述】:

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

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

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

有人吗?

【问题讨论】:

    标签: visual-studio-2010 mstest


    【解决方案1】:

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

    【讨论】:

    • 发现获取flask图标,还需要加&lt;TestProjectType&gt;UnitTest&lt;/TestProjectType&gt;
    • FWIW,10 年后的 VS2019 仍然如此
    【解决方案2】:

    如果它可以帮助我遇到相反问题的任何人 - 我错误地添加了一个项目作为单元测试。要将类型更改回普通类库,我只是完全删除了其他答案中提到的 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. 保存更改,右键单击项目,然后选择重新加载项目。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-02
        • 1970-01-01
        相关资源
        最近更新 更多