TFS 2013 - 无代码覆盖率结果

时间:2014-06-03 13:16:27

标签: tfs visual-studio-2013

我有一个TFS 2013环境设置,我想在构建后让TFSBuild收集我的代码覆盖率结果。
测试运行正常,但无论我尝试什么,我都会收到一条消息:#34; No Code Coverage Results"。

我已经阅读过"代码覆盖率分析服务",但这根本没有安装在我的服务器上,我似乎无法在任何地方找到它。

我已经完成了构建过程,以确保我有"自动化测试 - >测试源 - >运行设置 - >运行设置的类型"设置为CodeCoverageEnabled,但无论我尝试了什么,我都无法将结果发布到Analysis服务数据库,因此我可以运行Code Coverage Reports

我已经尝试过运行设置文件,但没有运气,所以我已经把它排除在等式之外。

非常感谢任何帮助!

5 个答案:

答案 0 :(得分:57)

我刚刚弄清楚问题是我的代码覆盖率没有在buildserver上计算出来。我在微软的帮助台上想到这一点,这是一个小的UI错误。

重现步骤:创建新的构建定义。

  1. 转到构建定义的流程选项卡,然后选择要构建的解决方案文件。
  2. 现在展开“自动化测试”部分并展开“测试源”。
  3. 展开“运行设置”并将“运行设置类型”从“默认”更改为“CodeCoverageEnabled”。
  4. 保存builddefinition并运行您的构建。
  5. 检查构建结果,并注意不计算代码覆盖率。
  6. 要解决此问题,请使用构建定义的其他ui。

    1. 选择“自动测试”节点。
    2. 现在在右边的那一行,你会看到一个带有“......”的按钮。点击它,将打开一个对话框。
    3. 点击“编辑”以编辑测试源。您将看到启用了代码覆盖率。如果没有选择它。
    4. 点击Ok和Ok再次关闭两个对话框。
    5. 现在保存构建定义并再次运行构建。
    6. 现在代码覆盖率已经计算好了!微软帮助台已经向开发团队提交了一个错误,它将被修复,我想下一个版本。小虫子但是花了我两天多的时间来找到这个虫子!

答案 1 :(得分:4)

您的构建计算机上是否安装了Premium或Ultimate visual studio?其中任何一个都需要将代码覆盖率结果返回到TFS

答案 2 :(得分:0)

我认为“其他窗口”是指右键单击解决方案的“Local.testsettings”文件(或其他[] .testsettings文件),选择“打开”并浏览各种设置。当您将“测试运行位置”单选按钮设置为“使用本地计算机或测试控制器运行测试”时,“数据和诊断”下的“代码覆盖率(Visual Studio 2010)”中有一个设置。

答案 3 :(得分:0)

我正在使用带有Visual Studio Online的本地构建服务器和.runsettings文件,我遇到了完全相同的问题。

上面的技巧都没有帮助,所以我在托管构建控制器上测试了构建脚本并且工作正常,所以我认为问题必须是构建服务器本身。

将Build Service帐户从“网络服务”更改为TFS配置工具中的常规Windows用户帐户,现在收集了代码覆盖率。请注意,此用户需要访问TFS构建目录。

答案 4 :(得分:0)

上述解决方法对我无效(VS2015 update5& TFS2013 Update 3)。

就我而言,构建服务器上没有安装Visual Studio,这似乎是返回代码覆盖率结果的要求。

来自MSDN

对于以下情况,需要在构建服务器上安装Microsoft Visual Studio:

  • 要构建任何CPP测试项目,必须安装Visual Studio Professional或更高版本。
  • 要运行单元测试或编码的UI测试,必须安装Visual Studio Professional或更高版本。
  • 使用数据和诊断数据适配器:

     - Code coverage: Visual Studio Premium or later.   
     - Test impact: Visual    Studio Ultimate.  
     - IntelliTrace: Visual Studio Ultimate.
    
  • 在构建计算机上构建任何现代风格的应用程序:Visual Studio Ultimate或Visual Studio Express for Windows 8(构建服务器上的操作系统必须是Windows 8)。

  • 使用伪装配编译和运行项目的测试:Visual Studio Ultimate。