2015-06-17 41 views
1

當我運行gradlew test jacocoTestReport時,任務jacocoTestReport將運行並獲得測試報告。
當我運行gradlew integTest jacocoTestReport時,跳過任務jacocoTestReport。Gradle&Jacoco:獲取除「test」以外的測試類型任務的jacoco報告

下面是從我的build.gradle相關摘錄:

apply plugin: 'jacoco' 

jacocoTestReport { 
    group = "Reporting" 
    description = "Generate Jacoco coverage reports after running tests." 
    additionalSourceDirs = files(sourceSets.main.allJava.srcDirs) 

    doLast { 
     println 'See report at: file://' + projectDir + '/build/reports/jacoco/test/html/index.html' 
    } 
} 


test { 
    filter { 
     // only run tests ending in *UnitTest 
     includeTestsMatching "*UnitTest" 
    } 
} 


task integTest(type: Test) { 
    filter { 
     includeTestsMatching "*IntegTest" 
    } 
    jacoco { 
     destinationFile = file("$buildDir/jacoco/integTest.exec") 
     classDumpFile = file("$buildDir/classes") 
    } 
} 

的gradle這個文件並沒有幫助我在這裏,和廣泛的谷歌搜索並沒有產生任何結果,無論是。

任何想法如何讓jacoco做我的集成測試報告?

編輯:單元-&集成 - 測試是在相同的目錄中,它們通過它們的文件名進行區分,以防萬一不明確。

回答

0

事實證明,這個工程:

task integTestReport (type: JacocoReport) { 

    executionData project.tasks.integTest 

    sourceDirectories = project.files(project.sourceSets.test.allSource.srcDirs) 
    classDirectories = project.sourceSets.test.output 

    def reportDir = project.reporting.file("jacoco/integTest/html") 
    reports { 
     html.destination = reportDir 
    } 
    doLast { 
     println "See report at: file://${reportDir.toURI().path}index.html" 
    } 
} 

我希望這是有益:)

編輯:這需要晚文件比integTest任務的定義英寸
我有我的build.gradle結束時的整個jacoco配置。

相關問題