我正在使用Gradle,JDK 8,Java FX和Test FX构建应用程序。我需要使用JDK 8,因为我们的应用程序可以使用我们的技术堆栈在所有平台上工作。我的问题是我无法将代码覆盖到我们的构建中。我找到了这个链接...
https://github.com/jacoco/jacoco/issues/74
...并使用顶部的Jacoco预览版本,我能够替换我的intellij JAR并成功运行我的测试并获得覆盖率。但是,我无法将其放入build.gradle中。据我所知,我需要在构建脚本中添加一个本地存储库...
...
apply plugin: "jacoco"
...
buildscript {
repositories {
// Local Repo
// MVN Repo(s)
}
dependencies {
// Classpaths
}
}
jacoco {
toolVersion = "0.6.4.201311160552" // I need this specific version, which isn't on a MVN repo
}
...我试图通过几种方式添加我的本地仓库,包括......
...我的lib文件夹包含上面链接中预览版本zip的lib文件夹中未更改的确切内容。看起来Gradle似乎没有找到本地仓库的问题,但它找不到JAR。我认为我命名它的方式或它“打包”的方式有问题。我试过修改JAR名称,但我一直收到错误......
无法解析配置':classpath'的所有依赖项。 找不到:org.jacoco.agent:。 要求: :myProject的:未指定
答案 0 :(得分:2)
“回答”我自己的问题,尽管事实上我还没有完全理解它。无论如何,这里有两个链接,我发现似乎解决了我的问题......
http://forums.gradle.org/gradle/topics/jacocotestreport_is_skipping
...遵循其中一些说明允许我的测试运行,但是我仍然无法在没有失败的情况下运行“gradle jacocoTestReport”。
的更新强> 的
OKAY!我想通了,上面的链接确实帮我解决了。我的问题是asm-all JAR,因为有几个,我不知道使用哪一个。为了使jacoco能够使用Java 1.8,您不需要指定toolVersion属性。您需要做的就是将以下内容添加到依赖项块(而不是buildscript块,代码块)......
jacocoAgent文件( “$ PROJECTDIR / LIB / org.jacoco.agent-0.6.4.201311160552.jar”)
jacocoAnt文件( “$ PROJECTDIR / lib目录/ org.jacoco.ant-0.6.4.201311160552.jar” “$ PROJECTDIR / lib目录/ org.jacoco.core-0.6.4.201311160552.jar” “$ PROJECTDIR / lib目录/ org.jacoco.report-0.6.4.201311160552.jar” “$ PROJECTDIR / LIB / ASM-全5.0_BETA.jar”)
... asm-all-5.0_BETA.jar取自在...发现的org.ow2.asm组。
http://mvnrepository.com/artifact/org.ow2.asm/asm-all/5.0_BETA
...希望这有帮助!
答案 1 :(得分:0)
作为参考,最新的jacoco库已更改,因此我共享以下代码段:
dependencies{
jacocoAgent files("$rootProject.projectDir/lib/org.jacoco.agent-0.8.3.201904130250.jar")
jacocoAnt files("$rootProject.projectDir/lib/org.jacoco.ant-0.8.3.201904130250.jar",
"$rootProject.projectDir/lib/org.jacoco.core-0.8.3.201904130250.jar",
"$rootProject.projectDir/lib/org.jacoco.report-0.8.3.201904130250.jar",
"$rootProject.projectDir/lib/asm-7.0.jar",
"$rootProject.projectDir/lib/asm-tree-7.0.jar",
"$rootProject.projectDir/lib/asm-commons-7.0.jar"
)
}