Java 使用jacoco和gradle进行离线检测

Java 使用jacoco和gradle进行离线检测,java,gradle,code-coverage,wildfly-8,jacoco,Java,Gradle,Code Coverage,Wildfly 8,Jacoco,我想进行离线检测以获得项目的覆盖率,因为如果没有离线检测,服务器管理的东西(EJB)的覆盖率将显示为0%。有人知道我们如何使用gradle进行离线检测吗 编辑:我使用的是Wildfly 8.2应用服务器我没有使用JaCoCo,但我使用了Cobertura。据我所知,它们之间表面上的主要区别是JaCoCo执行运行时插装,而Cobertura执行编译时插装。如果您不知道JaCoCo的问题是否可以解决,但是如果您需要进行脱机或编译时插装,那么您应该使用Cobertura 使用Cobertura进行处理

我想进行离线检测以获得项目的覆盖率,因为如果没有离线检测,服务器管理的东西(EJB)的覆盖率将显示为0%。有人知道我们如何使用gradle进行离线检测吗


编辑:我使用的是Wildfly 8.2应用服务器

我没有使用JaCoCo,但我使用了Cobertura。据我所知,它们之间表面上的主要区别是JaCoCo执行运行时插装,而Cobertura执行编译时插装。如果您不知道JaCoCo的问题是否可以解决,但是如果您需要进行脱机或编译时插装,那么您应该使用Cobertura

使用Cobertura进行处理非常简单:

plugins {
    id 'net.saliman.cobertura' version '2.2.5'
}

apply plugin: 'java'

test {
    filter {
        includeTestsMatching "*Test"
    }
}

test.dependsOn coberturaCheck

cobertura {
    coverageCheckBranchRate         = 0
    coverageCheckLineRate           = 0
    coverageCheckPackageBranchRate  = 0
    coverageCheckPackageLineRate    = 0
    coverageCheckTotalBranchRate    = 0
    coverageCheckTotalLineRate      = 0
}

你说的是测试覆盖率吗?是的。在测试期间,一些组件部署在Wildfly中,服务器将在运行时修改这些类。所以我们不会得到它的保险,谢谢你的回复。这会解决EJB和使用wilfly server的组件的零覆盖率问题吗?。这是我和杰科科面临的主要问题。我是按照你的建议做的。现在,我在build文件夹中插入了_classes目录,其中包含插入指令的类。但是EJB的代码覆盖率仍然为0%(会话bean和在AS中测试期间部署的一些资源)。根据这一理论,我们应该使用仪器化类进行测试,对吗?。但默认情况下,它从build/classes目录中获取类进行测试。这就是错误覆盖的原因吗?是的,您必须对类路径进行排序,以便在到达未插入指令的类之前到达插入指令的类。您能帮我吗?。我们如何在gradle中对类路径进行相应的排序?首先应该在命令行中添加“-debug”。这将发出大量输出,但最终将显示用于执行测试的确切“java”命令行,包括类路径。这应该提供一个线索。