使用Wildfly Arquillian Gradle Jacoco的EJB代码覆盖率

使用Wildfly Arquillian Gradle Jacoco的EJB代码覆盖率,gradle,code-coverage,wildfly-8,jboss-arquillian,jacoco,Gradle,Code Coverage,Wildfly 8,Jboss Arquillian,Jacoco,我正在尝试为我的项目设置代码覆盖率。我使用Wildfly 8.2服务器,gradle作为构建工具,JUnit和Arquillian用于测试。在gradle中,我配置了jacoco插件来生成代码覆盖率。我有一个名为JacoTestReport的任务,它允许我生成一个html报告 关于运行测试: 我正在从事一个多模块项目,每个子项目都有一个Deployments类,其中我们有两种方法—一种用于创建REST类的包覆面提取存档,另一种用于非REST类。在arqullian.xml中,我们将其配置为RES

我正在尝试为我的项目设置代码覆盖率。我使用Wildfly 8.2服务器,gradle作为构建工具,JUnit和Arquillian用于测试。在gradle中,我配置了jacoco插件来生成代码覆盖率。我有一个名为JacoTestReport的任务,它允许我生成一个html报告

关于运行测试: 我正在从事一个多模块项目,每个子项目都有一个Deployments类,其中我们有两种方法—一种用于创建REST类的包覆面提取存档,另一种用于非REST类。在arqullian.xml中,我们将其配置为REST_容器和非REST_容器,并给出WildFly安装目录的路径。当我们运行gradle构建测试时,它将通过部署REST.ear和non-REST.ear来运行整个测试,并生成覆盖率报告

问题是EJB和其他服务器管理类的代码覆盖率在主要覆盖率分析报告中显示为0%。我还分析了jacoco.exec,在那里我发现覆盖率为0%的类没有在文件中列出,主要是bean类

有人能为我提供适合组合的正确配置吗:Wildfly Arquillian Gradle Jacoco


注意:我可以使用jacoco以外的工具,尝试过cobertura,但结果相同

这对我来说很有效,但我使用的jboss7应该不是问题来源:


嘿,EJB的代码覆盖率真的不可能吗?似乎从来没有人尝试过。我的EJB代码覆盖率很好。但是我不使用Arquillian,我想这是问题的根源,因为它会导致被测试的类在自定义类加载器上重新加载。代码覆盖率工具没有看到重新加载的类,而这个类实际上是被执行的,因此您得到了0%的覆盖率。 apply plugin: 'jacoco' jacoco { toolVersion = '0.7.4.201502262128' reportsDir = file("$buildDir/jacoco") } dependencies { testCompile 'YOUR_ARQUILLIAN_ADAPTER' testCompile 'org.jboss.arquillian.junit:arquillian-junit-container:1.1.5.Final' testCompile 'org.jboss.arquillian.extension:arquillian-jacoco:1.0.0.Alpha7' } // Important: add the Jacoco libs on the test classpath (required for the Jacoco Arquillian extension to work). sourceSets { test.runtimeClasspath += configurations.jacocoAnt }