我正在尝试为我的项目设置代码覆盖率。我使用 Wildfly 8.2 服务器,gradle 作为构建工具,使用 JUnit 和 Arquillian 进行测试。在 gradle 中,我配置了 jacoco 插件来生成代码覆盖率。我有一个名为 的任务jacoco 测试报告 这允许我生成一个 html 报告。
关于运行测试的一些事情:
我正在开发一个多模块项目,每个子项目都有一个 Deployments 类,其中我们有两种方法 - 一种用于创建 REST 类的收缩包装存档,另一种用于非 REST 类。在 arqullian.xml 我们将其配置为 REST_CONTAINER 和 NON_REST_CONTAINER 并给出 WildFly 安装目录的路径。当我们运行 gradle 构建测试 , 它将通过部署 REST.ear 和 non-REST.ear 来运行整个测试并生成覆盖率报告。
问题是 EJB 和其他服务器管理类的代码覆盖率显示为 0%(来自覆盖率报告的主要分析)。我还分析了 jacoco.exec,发现文件中没有列出覆盖率为 0% 的类(主要是 bean 类)。
有人可以为我提供适用于该组合的正确配置:Wildfly-Arquillian-Gradle-Jacoco
注意:我可以使用 jacoco 以外的工具,尝试过 cobertura 但结果相同。
最佳答案
这对我有用(但我使用 jboss7 应该不是问题)来源:https://developer.jboss.org/thread/241883
应用插件:'jacoco'
雅可{
工具版本 = '0.7.4.201502262128'
报告目录 = 文件(“$buildDir/jacoco”)
}
依赖{
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'
}
//重要:在测试类路径中添加 Jacoco 库(Jacoco Arquillian 扩展工作所必需的)。
源集{
test.runtimeClasspath +=configurations.jacocoAnt
}
关于gradle - 使用 Wildfly-Arquillian-Gradle-Jacoco 的 EJB 的代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30347492/