gpt4 book ai didi

nunit - 带有 dotCover 的 TeamCity 未在覆盖率报告中包含我的所有程序集

转载 作者:行者123 更新时间:2023-12-04 15:22:09 24 4
gpt4 key购买 nike

我想在 TeamCity 上运行 NUnit 并使用 dotCover 生成报告。但由于某些原因,我无法获得所有项目程序集的覆盖率报告。

TeamCity 配置如下

Teamcity: 6.5.3 
NUnit: 2.5.10
.NET Runtime: Platform: x86
.NET Runtime: Version: v4.0
dotCover: bundled with TC not customized

我已经检查了所有 *.dll *.xml *.pdb文件在目录中,如下所示(未列出引用 DLL)
MY.PROJECT.A.dll
MY.PROJECT.A.pdb
MY.PROJECT.A.xml
MY.PROJECT.B.dll
MY.PROJECT.B.pdb
MY.PROJECT.B.xml
MY.PROJECT.C.dll
MY.PROJECT.C.pdb
MY.PROJECT.C.xml
MY.PROJECT.Test.dll
MY.PROJECT.Test.pdb
MY.PROJECT.Test.xml

MY.PROJECT.Test.dll 使用 NUnit 执行,并且使用 *Test* 过滤器在覆盖率报告中排除此程序集。但只有 MY.PROJECT.A在 dotCover 覆盖率报告中,而 MY.PROJECT.BMY.PROJECT.C不包括在内。

我检查了日志,但没有发现错误。

任何想法都非常感谢。

最佳答案

最后,我弄清楚发生了什么,希望这个答案对那些仍在努力解决这个或类似问题的人有用。

基本上,dotCover 只包括那些实际上是 的程序集。使用(更准确地说,是由 CLR 加载的那些程序集)通过代码覆盖率报告中的测试。

就我而言,只有 MY.PROJECT.A用于测试,MY.PROJECT.BMY.PROJECT.C由于外部依赖性,测试不使用。甚至还有 using MY.PROJECT.B测试中的指令,它不算作 CLR 的延迟加载。

显示这两个程序集的 0% 覆盖率报告的一种虚拟解决方法是在测试中使用程序集中的任何内容,或者通过调用 System.Reflection.Assembly.Load("MY.PROJECT.B") 强制加载这些程序集。

相关问题:

  • Visual Studio Code Coverage Not Showing All Assemblies
  • What constitutes full code coverage ...
  • 关于nunit - 带有 dotCover 的 TeamCity 未在覆盖率报告中包含我的所有程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26483960/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com