代码之家  ›  专栏  ›  技术社区  ›  Timwi

为什么visual studio在启用时会说“没有为此测试运行启用代码覆盖率”?

  •  11
  • Timwi  · 技术社区  · 15 年前

    在visual studio中,我刚刚创建了一个简单的单元测试来测试我编写的方法。我想检查代码覆盖率,但“代码覆盖率”窗口只会声明“此测试运行未启用代码覆盖率”。为什么?注:

    1. 我已经按照指示做了 this page ,即测试配置确实在“代码覆盖率选项”页上选中了相关程序集。
    2. 我点击了“运行测试”, “调试测试”,一些来源声称这是导致这种情况的原因。
    3. 我试过在当前构建配置设置为“debug”或“release”的情况下运行测试;两种方法都不起作用。
    4. 我也遵循了 this page (通过选择test=>select active test run configuration重新选择testrunconfig文件),但没有结果。

    但每次运行相关测试时,我仍然会收到消息“代码覆盖率未为此测试运行启用”。如何一劳永逸地启用代码覆盖?

    5 回复  |  直到 13 年前
        1
  •  3
  •   Marc Gravell    15 年前

    我曾经和mstest斗争,在 许多 领域(包括代码覆盖率)-坦白地说,它*并没有尽其所能让生活变得简单-特别是额外的testrunconfig等复制了csproj中已经存在的很多东西。

    无论如何,我发现testdriven.net内置了这个功能(只要您有合适的visual studio版本来包含mstest和coverage):

    alt text http://www.mutantdesign.co.uk/weblog/images/DrivingMSTestandTeamCoverageusingTes.NET_F424/MSTestAndTeamCoverage_thumb1.gif

    这将使用您现有的测试框架(包括mstest),但它将跳过所有常用的环来启用测试覆盖率,而无需处理配置。它甚至可以与源代码着色(红/蓝未测试/测试等)一起工作。手巧。

    *=工具本身和gui集成

        2
  •  2
  •   Asrail    15 年前

    看看这一页,看看这是否有帮助: Tips on Using Code Coverage in Visual Studio 2005

    他甚至在设置了您提到的配置文件后出现了问题,该问题与位于GAC上的程序集有关。

        3
  •  0
  •   Paul Whitehurst    15 年前

    如果这是一个C++项目,请确保已经启用了分析功能。打开项目属性->链接->高级。查找配置文件并将其设置为启用配置文件信息(/profile)。

        4
  •  0
  •   Stephen M. Redd    15 年前

    请确保从测试视图或测试列表窗口运行测试…不是从测试结果窗口。从“测试结果”窗口中重新运行测试并不总是遵守测试运行配置设置。

        5
  •  0
  •   Abyx    13 年前

    在我的例子中,当我质疑这个问题时,我在 Test->Select Active Test Run Configuration 菜单。
    删除/添加 .testrunconfig 文件,代码覆盖率又回来了。
    (VS2005团队版)