我試圖在應用程序服務器上測試覆蓋率分析,並且不想手動管理單元測試和端到端測試之間的jacoco版本。 有沒有辦法從代理從Gradle任務中獲取路徑,我可以依靠gradle將插件和手動連接之間的jacoco代理版本保持一致。在gradle中查找jacoco代理jar的位置(3.3)
最終目標是運行帶有jacoco代理的服務器,並在端到端測試期間收集測試覆蓋率信息。
我試圖在應用程序服務器上測試覆蓋率分析,並且不想手動管理單元測試和端到端測試之間的jacoco版本。 有沒有辦法從代理從Gradle任務中獲取路徑,我可以依靠gradle將插件和手動連接之間的jacoco代理版本保持一致。在gradle中查找jacoco代理jar的位置(3.3)
最終目標是運行帶有jacoco代理的服務器,並在端到端測試期間收集測試覆蓋率信息。
您可以將代理程序作爲依賴項。根據頁面http://www.jacoco.org/jacoco/trunk/doc/repo.html:Maven座標 - groupdId
是org.jacoco
,artifactId
是org.jacoco.agent
和classifier
是runtime
。這是打包到JAR中的相同工件,它提供對代理作爲資源的訪問(org.jacoco:org.jacoco.agent
aka「獲取代理的本地副本的API」),並由Gradle JaCoCo Plugin使用。可以將版本指定爲變量,以便Gradle JaCoCo插件與依賴關係保持一致。
這並不理想,但它比猜測或維護配置中的2個版本號更好。我現在有一個插件和代理版本。讓我們希望代理和插件將保持版本同步。 – mehmetg
根據Gradle doc,jacoco closure將配置爲toolVersion
來控制jacocoagent
版本。
jacoco {
toolVersion = "0.7.6.201602180812"
}
這裏是gradle source code來解決jacocoagent.jar
:
/**
* Unzips the resolved {@code org.jacoco.agent.jar} to retrieve the {@code jacocoagent.jar}.
*
* @return a file pointing to the {@code jacocoagent.jar}
*/
public File getJar() {
if (agentJar == null) {
agentJar = project.zipTree(getAgentConf().getSingleFile()).filter(new Spec<File>() {
@Override
public boolean isSatisfiedBy(File file) {
return file.getName().equals("jacocoagent.jar");
}
}).getSingleFile();
}
return agentJar;
}
事實上,如果你下載的罐子(如org.jacoco.agent-0.7.6.201602180812.jar
),並解壓縮,你會看到它是在高層:
$ unzip org.jacoco.agent-0.7.6.201602180812.jar
Archive: org.jacoco.agent-0.7.6.201602180812.jar
inflating: META-INF/MANIFEST.MF
inflating: META-INF/MTNMINDS.SF
inflating: META-INF/MTNMINDS.RSA
creating: META-INF/maven/
creating: META-INF/maven/org.jacoco/
creating: META-INF/maven/org.jacoco/org.jacoco.agent/
inflating: META-INF/maven/org.jacoco/org.jacoco.agent/pom.xml
inflating: META-INF/maven/org.jacoco/org.jacoco.agent/pom.properties
creating: org/
creating: org/jacoco/
creating: org/jacoco/agent/
inflating: jacocoagent.jar
inflating: org/jacoco/agent/AgentJar.class
inflating: about.html
讓我知道這是否有幫助。
你可以附加你當前的build.gradle嗎? – chenrui
唯一相關的部分是我使用jacoco插件。 '應用插件:「jacoco」',插件不指示它保存jar文件的位置。 – mehmetg
我在我的回答中添加了一些想法,讓我知道如果這可以幫助你。 – chenrui