我試圖尋找Jacoco離線儀器gradle腳本片段,但找不到一個。是否有可能通過gradle腳本執行Jacoco離線檢測?如果是的話......一個例子就是偉大的。謝謝。Jacoco離線儀器Gradle腳本
4
A
回答
-1
gradle jacoco插件不支持脫機檢測,它總是通過java代理進行在線檢測。
如果螞蟻jacoco插件支持離線儀器儀表這是有可能獲得離線儀器儀表在gradle這個
4
在這裏工作的最好辦法是執行使用JaCoCo Ant任務,離線儀器儀表搖籃腳本的例子:
apply plugin: 'java'
configurations {
jacoco
jacocoRuntime
}
dependencies {
jacoco group: 'org.jacoco', name: 'org.jacoco.ant', version: '0.7.9', classifier: 'nodeps'
jacocoRuntime group: 'org.jacoco', name: 'org.jacoco.agent', version: '0.7.9', classifier: 'runtime'
testCompile 'junit:junit:4.12'
}
repositories {
mavenCentral()
}
task instrument(dependsOn: ['classes']) {
ext.outputDir = buildDir.path + '/classes-instrumented'
doLast {
ant.taskdef(name: 'instrument',
classname: 'org.jacoco.ant.InstrumentTask',
classpath: configurations.jacoco.asPath)
ant.instrument(destdir: outputDir) {
fileset(dir: sourceSets.main.output.classesDir)
}
}
}
gradle.taskGraph.whenReady { graph ->
if (graph.hasTask(instrument)) {
tasks.withType(Test) {
doFirst {
systemProperty 'jacoco-agent.destfile', buildDir.path + '/jacoco/tests.exec'
classpath = files(instrument.outputDir) + classpath + configurations.jacocoRuntime
}
}
}
}
task report(dependsOn: ['instrument', 'test']) {
doLast {
ant.taskdef(name: 'report',
classname: 'org.jacoco.ant.ReportTask',
classpath: configurations.jacoco.asPath)
ant.report() {
executiondata {
ant.file(file: buildDir.path + '/jacoco/tests.exec')
}
structure(name: 'Example') {
classfiles {
fileset(dir: sourceSets.main.output.classesDir)
}
sourcefiles {
fileset(dir: 'src/main/java')
}
}
html(destdir: buildDir.path + '/reports/jacoco')
}
}
}
+0
可以確認此作品。任何有關在官方插件中獲得此信息的想法? –
+0
@KyleC,僅供參考:[爲Gradle Jacoco插件添加離線工具支持·Issue#2429·gradle/gradle](https://github.com/gradle/gradle/issues/2429)。 –
相關問題
- 1. Gradle和JaCoCo:來自單獨子項目的儀器類
- 2. Android Gradle Jacoco:用於集成測試的脫機儀器
- 3. Jacoco Maven離線設備 - Tomcat
- 4. Gradle Jacoco和JUnit5
- 5. Jacoco with Android Gradle 1.3.0
- 6. Gradle,Android,Jacoco和JUnit5
- 7. jacoco離線檢測原始類路徑
- 8. 儀器+ UIAutomation從shell腳本
- 9. 從iOS的儀器腳本
- 10. JaCoCo&Gradle - 篩選選項
- 11. 勺子和Jacoco與gradle
- 12. 測試期間gradle跳jacoco
- 13. 離線JSON測試儀
- 14. PHP腳本在線,但沒有離線
- 15. 帶有Jacoco插件的Gradle 1.9找不到jacoco代理
- 16. 調試儀器中的UIAutomation腳本
- 17. 離線使用Google Apps腳本
- 18. 緩存/離線網站腳本
- 19. 儀器Java線程
- 20. Gradle Jacoco - 找不到方法jacocoTestReport()
- 21. 集成Sonar,Jacoco,Gradle,ScalaTest與Junit,Java
- 22. Gradle跳過jacoco覆蓋插件
- 23. 在Gradle多項目中應用Jacoco
- 24. 找不到id爲'jacoco'的插件+ Gradle
- 25. 將ant腳本轉換爲gradle腳本
- 26. gradle腳本classpath只包含腳本類
- 27. 不使用Gradle創建儀器測試
- 28. Android工作室(儀器)的Gradle測試
- 29. 風味和儀器測試 - gradle配置
- 30. 哪些版本的gradle,sonarqube和jacoco插件兼容
恕我直言,沒有好的理由去做脫機的字節碼工具了。使用Java代理(如JaCoCo)是最直接的方法。 –
@ G.Demecki我通常會同意,但是那裏有一些Java工具鏈並沒有完全支持通過Java代理進行即時檢測(一個例子是由Aicas提供的實時功能的JamaicaVM)。 – AdrianoKF