2017-06-14 119 views
0

我知道這對stackexchange有很多類似的問題,但這使我瘋狂,沒有任何其他答案對我有幫助。我已經使用了幾乎所有的力量標誌來尋找Gradle。Gradle跳過jacoco覆蓋插件

我的搖籃版本是2.2.1

我的build.gradle

buildscript { 
ext { 
    springBootVersion = '1.5.3.RELEASE' 
} 
repositories { 
    mavenCentral() 
} 
dependencies { 
    classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") 
    classpath("se.transmode.gradle:gradle-docker:1.2") 
} 
} 
apply plugin: 'java' 
apply plugin: 'eclipse' 
apply plugin: 'org.springframework.boot' 
apply plugin: 'application' 
apply plugin: 'docker' 
apply plugin: 'jacoco' 

version = '0.0.1-SNAPSHOT' 
sourceCompatibility = 1.8 

repositories { 
    mavenCentral() 
} 


ext { 
    springCloudVersion = 'Dalston.RELEASE' 
} 

test { 
    include 'src/test/java' 
    finalizedBy jacocoTestReport 
} 

jacocoTestReport { 
    reports { 
    xml.enabled true 
    csv.enabled false 
    html.enabled false 
    xml.destination "${buildDir}/jacoco" 
} 
} 
dependencyManagement { 
    imports { 
    mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" 
    } 
} 

當我運行gradle testgradle clean test jacocoTestReportgradle clean --re-run等等等等,我得到了相同的結果。

gradle test 
:compileJava 
:processResources 
:classes 
:compileTestJava 
:processTestResources UP-TO-DATE 
:testClasses 
:test UP-TO-DATE 
:jacocoTestReport SKIPPED 

我在src/test/java位置只有1個測試。

爲什麼不生成報告並運行?我很茫然。

回答

0

刪除測試配置中的錯誤include語句。

這似乎導致測試任務始終採用最新的(不執行任何測試的包括模式不匹配),如果沒有可用execution data所需要

jacocoTestReport將被跳過生成報告。在執行test任務時應生成execution data。在您的示例中,我們看到test任務始終標記爲最新(因爲include語句無效),導致構建不會爲jacocoTestReport任務生成任何輸入。

+1

謝謝!這包括從我看到的另一個例子中「借來的」,並且我不理解其中的原因。學過的知識! – Justin