Java 使用jacoco和gradle进行离线检测
我想进行离线检测以获得项目的覆盖率,因为如果没有离线检测,服务器管理的东西(EJB)的覆盖率将显示为0%。有人知道我们如何使用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进行处理
编辑:我使用的是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”命令行,包括类路径。这应该提供一个线索。