我有一个由几个项目组成的Visual Studio解决方案。我在TeamCity中为它设置了一个构建过程,我添加了一个NUnit跑步者构建步骤,其中包含以下设置:
在构建的代码覆盖率选项卡中,在Coverage Breakdown下,我只能看到:
MyProject.Web,测试的对象以及解决方案中的一些其他程序集不会显示在那里,并且被dotCover代码覆盖率计算忽略。为什么?如何判断使用哪些组件?
我在“过滤器”字段中尝试了各种+:/ - :组合失败了。但是如果过滤器为空,我希望包含MyProject.Web,因为MyProject.Domain是 - 为什么不包含它?
答案 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代码覆盖率
- .testrunconfig用于MSTest,并且未禁用Visual Studio代码覆盖率(CodeCoverage部分使用enable =" true"存在)