- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含多个模块的 Java-Gradle 项目,这意味着多个 build.gradle 文件和多个测试文件夹。
我有一个主 build.gradle,我成功地将所有多 jacoco 报告聚合到一个主报告中,使用以下配置在我的主 build.gradle 中。
但现在我想从聚合模块中排除一些包/类。
我怎么做?
你也可以在下面看到我的尝试
apply plugin: 'jacoco'
apply plugin: 'java'
def otherProjects = [':module1', ':module2']
otherProjects.each {
// ensure other projects evaluated first so sourceSets are configured
evaluationDependsOn it
}
jacoco {
toolVersion = "0.8.4"
reportsDir = file("$buildDir/jacoco")
}
jacocoTestReport {
FileTree sourceTree = files().asFileTree
FileTree classTree = files().asFileTree
otherProjects.each {
sourceTree += project(it).sourceSets.main.allJava
classTree += project(it).sourceSets.main.output.asFileTree
}
additionalSourceDirs = sourceTree
additionalClassDirs = classTree
reports {
html.enabled true
html.destination file("${buildDir}/jacocoHtml")
}
// try 1
afterEvaluate {
classDirectories = files(classDirectories.files.collect {
fileTree(dir: it, exclude: '/com/packege_from_module1/**')
})
}
// try 2
afterEvaluate {
additionalSourceDirs = files(additionalSourceDirs.files.collect {
sourceTree(dir: it, exclude: 'com/packege_from__module1/**')
})
}
// try 3
afterEvaluate {
additionalSourceDirs = files(additionalSourceDirs.files.collect {
classTree(dir: it, exclude: 'com/packege_from__module1/**')
})
}
最佳答案
给定a/src/main/java/A.java
class A {
}
a/src/test/java/ATest.java
import org.junit.Test;
public class ATest {
@Test
public void a() {
}
}
b/src/main/java/B.java
class B {
}
b/src/test/java/BTest.java
import org.junit.Test;
public class BTest {
@Test
public void b() {
}
}
settings.gradle
rootProject.name = 'example'
include 'a'
include 'b'
build.gradle
allprojects {
apply plugin: 'java'
apply plugin: 'jacoco'
jacoco {
toolVersion = "0.8.3"
}
repositories {
mavenCentral()
}
dependencies {
testCompile 'junit:junit:4.12'
}
}
task jacocoAggregateReport(type: org.gradle.testing.jacoco.tasks.JacocoReport) {
dependsOn = subprojects.test
sourceDirectories = files(subprojects.sourceSets.main.allSource.srcDirs)
classDirectories = files(subprojects.sourceSets.main.output)
executionData = files(subprojects.jacocoTestReport.executionData)
}
gradle jacocoAggregateReport
将在目录
build/reports/jacoco/jacocoAggregateReport/html/index.html
中生成以下报告
A.class
通过改变报告
classDirectories = files(subprojects.sourceSets.main.output)
build.gradle
在
classDirectories = files(subprojects.sourceSets.main.output).asFileTree.matching {
exclude 'A.class'
}
gradle jacocoAggregateReport
会产生
classDirectories
的所有类文件构建的。和
additionalClassDirs
- 不排除
classDirectories
和
additionalClassDirs
在尝试 2 和 3 中,没有排除
additionalClassDirs
在尝试 1。
关于gradle - 雅 cocoa | Gradle |从聚合模块中排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57197492/
现在我使用 Jacoco 来了解整个测试套件的覆盖率,但我需要按测试用例分解覆盖率信息。 我需要创建一个程序来执行此操作,因为我们需要自动化大型套件。我想这应该通过使用 API 来完成... 有办法做
我有一个包含多个模块的 Java-Gradle 项目,这意味着多个 build.gradle 文件和多个测试文件夹。 我有一个主 build.gradle,我成功地将所有多 jacoco 报告聚合到一
我有一个 Maven 项目,我想使用 jacoco 进行代码覆盖。这是我的 pom 的相关部分 org.jacoco
当我运行 gradlew test jacocoTestReport 任务 jacocoTestReport 运行并且我得到一份测试报告。 当我运行 gradlew integTest jacocoT
尝试使用离线检测通过 jacoco 获取覆盖范围(无法使用即时检测:由于 powermock 测试用例)的 Maven 项目。将 jacocoagent.jar 添加到 Surefire 插件的类路径
我是一名优秀的程序员,十分优秀!