当前位置: 首页 > 知识库问答 >
问题:

Jacoco Gradle在整个项目级别(不是模块级别)上的最小代码覆盖阈值

楚建柏
2023-03-14

我们的项目使用Gradle 3.5,jacoco 0.8.1

它有3个模块--module-A、module-B、module-C,代码覆盖率分别为50%、6%和42%,整个项目的代码覆盖率为38%。

我在Jacoco Gradle中尝试了最小代码覆盖阈值的解决方案

jacocoTestCoverageVerification {
violationRules {
    rule {
        limit {
            minimum = 0.38
        }
    }
}

但失败了,提示模块-B违反了规则,指令覆盖率为0.06,而expect为0.38,似乎只适合模块级,而不适合整个项目级。

我还尝试使用element='group',但似乎没有效果。(https://www.eclemma.org/jacoco/trunk/doc/api/org/jacoco/core/analysis/icoveragenode.elementtype.html)

谢谢,

共有1个答案

贺季同
2023-03-14

是的,我为它找到了另一个解决方案,那就是在每个模块中编写限制规则,比如对于模块-A,它的代码覆盖率是50%,所以在模块-A的build.gradle文件中,规则如下:

// for moudle-A module
jacocoTestCoverageVerification {
violationRules {
    rule {
        limit {
            minimum = 0.5
        }
    }
}
 类似资料:
  • 问题内容: 哪种风格更好? 风格A: 风格B: 假设 在代码的其他地方没有使用,仅在此函数内部使用。 问题答案: 确实,如前所述,通常最好遵循PEP 8的建议,并在顶部进行导入。虽然有一些例外。理解它们的关键在于您在第二段中嵌入的问题:“导入在哪个阶段发生?” 导入实际上是一个可执行语句。导入模块时,模块中的所有可执行语句都会运行。“ def”也是可执行的语句;它的执行将使定义的名称与(已编译的)

  • 我有一个多模块项目和一个家长pom。xml及其两个模块。项目jar和项目。战争所有测试用例都在项目中。罐子当我运行mvn声纳时。母舰pom上的声纳目标,jacoco。未生成exec,代码覆盖率为空。我在父pom中具有以下属性。 请帮忙。我使用的是Sonarqube 4.2。

  • 注意:这不是重复的。这个版本的spark需要jdk 1.7或1.8。父pom。xml条目如下所示: 如截图所示,我们有SDK和语言级别的java 1.8: 以下是模块设置: 但是Intellij只是对此感到困惑: 错误:(73,51)java:源代码1.5中不支持菱形运算符(使用源代码7或更高版本启用菱形运算符) 这是一个spark项目,由maven在OS/X上构建。Intellij Ultima

  • 问题内容: 我在某处读过该元素的行为类似于两者。如果正确,可以有人举例说明吗? 问题答案: 的确,它们都是-或更确切地说,它们是“内联块”元素。这意味着它们像文本一样内联地流动,但也像块元素一样具有宽度和高度。 在CSS中,您可以设置一个元素以使其复制图像的行为*。 图像和对象也被称为“已替换”元素,因为它们本身不具有内容,因此该元素实际上被二进制数据替换。 *请注意,浏览器在技术上使用(如在开发

  • 有没有一种方法可以在不更新host.json文件的情况下覆盖Azure函数应用程序的默认日志级别?我希望我的函数只在dev环境中将跟踪日志传递给应用程序洞察。我在想,如果一个环境变量可以设置,函数将知道什么时候传递日志。