TeamCity 9.0.1 - 并非所有程序集都显示在Coverage Breakdown中

时间:2015-02-13 16:07:27

标签: teamcity dotcover

我有一个由几个项目组成的Visual Studio解决方案。我在TeamCity中为它设置了一个构建过程,我添加了一个NUnit跑步者构建步骤,其中包含以下设置:

  • nunit runner 2.6.3
  • 运行测试:%teamcity.build.workingDir%\ Sources \ ** \ bin \ * .Web.UnitTests.dll
  • .net覆盖工具:JetBrains dotCover
  • 过滤器: - 空 -

在构建的代码覆盖率选项卡中,在Coverage Breakdown下,我只能看到:

  • MyProject.Domain
  • MyProject.Web.UnitTests

MyProject.Web,测试的对象以及解决方案中的一些其他程序集不会显示在那里,并且被dotCover代码覆盖率计算忽略。为什么?如何判断使用哪些组件?

我在“过滤器”字段中尝试了各种+:/ - :组合失败了。但是如果过滤器为空,我希望包含MyProject.Web,因为MyProject.Domain是 - 为什么不包含它?

2 个答案:

答案 0 :(得分:0)

我担心没有日志文件和你的快照就很难提供正确的答案。请提交请求并附上文件:http://dotnettools-support.jetbrains.com/anonymous_requests/new

如果尚未启用日志,请将相应参数添加到构建配置中以激活它们:https://confluence.jetbrains.com/display/TCD9/Reporting+Issues#ReportingIssues-dotCoverIssues

答案 1 :(得分:0)

您是在发布模式还是调试模式下构建?我在发布模式下遇到了同样的问题,并且必须启用PDB输出,这是dotCover确定代码覆盖率所需要的。默认情况下,未对发布版本启用PDB。

要启用它,请转到项目设置 - >构建 - >高级(底部的按钮) - >调试信息 - >选择" pdb-only"或者"完整"。

此外,当无法确定代码覆盖率时,dotCover会提供此语句。检查列出的所有原因可能会有所帮助:

  

未检测到可执行代码。

     

问题可能是由以下原因引起的:

     
      
  • 包含/排除模式不正确
  •   
  • 在没有调试信息的情况下编译程序集
  •   
  • .pdb文件不可用
  •   
  • 为MSTest启用Visual Studio代码覆盖率
  •   
  • .testrunco​​nfig用于MSTest,并且未禁用Visual Studio代码覆盖率(CodeCoverage部分使用enable =" true"存在)
  •