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

带有integrationTest和exclusions的gradle

和季
2023-03-14
plugins {
    id 'org.unbroken-dome.test-sets' version '1.5.0'
}

apply plugin: 'java'
apply plugin: 'jacoco'

sourceSets {
    main {
        java {
            srcDirs = ['jsrc']
        }
    }
}

testSets {
    integrationTest {
        dirName = 'integration-test'
    }
}

jacocoTestReport {
    executionData fileTree(project.rootDir.absolutePath).include("**/build/jacoco/*.exec")
    // commented because causes the report to be empty
    //afterEvaluate {
    //    classDirectories = files(classDirectories.files.collect {
    //        fileTree(dir: it, exclude: ['**/TheOneClassToExclude.*'])
    //    })
    //}
}

如果这很重要,我将使用Gradle4.4和JDK7。

共有1个答案

夏侯渊
2023-03-14

在深入研究了一些之后:

  • 我意识到build/classes/java中的类文件在每次jacocoTestReport运行后都会被删除。
  • 更仔细地查看了executionData在我提到的文章中是如何使用的,我决定显式地定义jacocoTestReport源代码集:sourcesets.main,它几乎解决了我遇到的所有问题。不再擦除生成/类中的文件。
  • 我面临的最后一个问题是由于我的排除规则没有排除我想要的特定类而引起的。相反,我指定了包的整个路径(在我的例子中,包只包含类),这也解决了问题。

固定建造。梯度:

plugins {
    id 'org.unbroken-dome.test-sets' version '1.5.0'
}

apply plugin: 'java'
apply plugin: 'jacoco'

sourceSets {
    main {
        java {
            srcDirs = ['jsrc']
        }
    }
}

testSets {
    integrationTest {
        dirName = 'integration-test'
    }
}

jacocoTestReport {
    sourceSets sourceSets.main    // important!
    executionData fileTree(project.rootDir.absolutePath).include("**/build/jacoco/*.exec")
    afterEvaluate {
        classDirectories = files(classDirectories.files.collect {
            fileTree(dir: it, exclude: ['**/path/to/package/*'])
        })
    }
}
 类似资料:
  • 我有一些用Spring Boot编写的集成测试,希望按需运行它们。不是在做的时候/gradlew构建,但我想用它运行/gradlew集成测试。 我想在Docker容器内运行此integrationTest任务 我已经将集成测试代码放在文件夹src/Integrationtest中,并创建了如下integration-test.gradle文件:[我正在使用Gradle 5.2] 并将其应用于我的构

  • 我已经添加了版本 注意:我还没有迁移任何测试,所有测试都是JUnit4语法。

  • 如何在Spring Boot IntegrationTest上禁用计划自动启动? 谢了。

  • 问题内容: 我一直在尝试使用此处的少量指导,使用RecyclerView实现CollapsingToolbar:http : //android-developers.blogspot.co.uk/2015/05/android-design-support- library.html 和项目此处:https : //github.com/chrisbanes/cheesesquare,我目前具有

  • 问题内容: 有一种简单的方法可以将hibernate设置为对每个带有postgres的表使用不同的主键ID。我试图在数据源中使用postgres方言: 但这是行不通的。谢谢 问题答案: 简短的答案是没有,没有 简单的 方法可以做到这一点。但是,我找到了一种有效的解决方案。基本上,您需要实现自定义方言。这是一个实现(请在注释中注明实现的原始来源)。 上述实施应当存储为下你的Grails项目中。 接下

  • 问题内容: 我正在使用和。我知道,这两个类和是不相容的,但我仍然希望做的相当自然的事情- 我想换了每一个在每个迭代步骤一解析(嵌套内部的)。我尝试这样做: 当我尝试编译此代码时,即使看起来很自然,实际上我也会收到“不兼容的类型”错误。所以,我的问题是迭代的最佳方法是什么? 问题答案: 显然,实现了一个 原始 Iterator。这意味着每个元素都被视为。您可以尝试投射: 这就是在Java 1.4和更