TeamCity 9.0.1-并非所有装配都显示在覆盖范围细分中



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

  • nunit runner 2.6.3
  • 从以下位置运行测试:%teamcity.build.workingDir%\Sources\**\bin\*.Web.UnitTests.dll
  • .net覆盖工具:JetBrains dotCover
  • 筛选器:--空--

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

  • MyProject.Domain
  • 我的项目Web单元测试

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

我在"过滤器"字段中尝试了各种+:/-:组合,但都没有成功。但是过滤器是空的,我希望MyProject.Web会被包括在内,因为MyProject.Domain是-为什么不包括它?

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

若要启用它,请转到"项目设置"->生成->高级(底部的按钮)->调试信息->选择";仅pdb";或";"满";。

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

未检测到可执行代码。

问题可能由以下原因之一引起:

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

如果没有日志文件和快照,恐怕很难提供正确的答案。请提交申请并附上文件:http://dotnettools-support.jetbrains.com/anonymous_requests/new

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

最新更新