2013-06-30 19 views
9

yapılandırmasında hariç tutulan sınıfları içerir. Bir sınamaya sahip olmayan bir dizi sınama ekledim ve sınama kapsamı istatistiklerimi bozmamalarını istemiyorum. rapor oluşturulurkenGradle Jacoco - kapsam raporları,

test { 
    jacoco{ 
     excludes = ['org/bla/**'] 
     includes = ['com/bla/**'] 
     append = false 
    } 
} 

jacocoTestReport { 
    dependsOn test 
    description = "Generate Jacoco coverage reports after running tests." 
    reports { 
     xml.enabled true 
     html.enabled true 
    } 
    classDirectories = fileTree(dir: 'build/classes/main', include: 'com/bla/**') 
    sourceDirectories = fileTree(dir: 'scr/main/java', include: 'com/bla/**') 
} 

Ama yine de, Jacoco da org.bla gelen sınıfları

birisi bana yardımcı olabilir içerir: Ben önümüzdeki şekilde Jacoco yapılandırılmış?

DÜZENLEME

bazı ayıklama sonra, tüm varsayılan çıkışları böyle kodunu kullanarak görüntülenebilen özel yöntemle org.gradle.testing.jacoco.plugins.JacocoPlugin#addDefaultReportTasks

yılında org.gradle.testing.jacoco.tasks.JacocoReport#classDirectories ilave edilmekte olduğu görülmektedir: Yani

jacocoTestReport { 
    classDirectories = files('build/classes/main/com/bla') 
    println("-----------------------------------------------------------") 
    getAllClassDirs().each { File file -> 
     println(file.absolutePath) 
    } 
    println("-----------------------------------------------------------") 
    getAdditionalClassDirs().each{ File file -> 
     println(file.absolutePath) 
    } 
} 

jacocoTestReport << { 
    println("-----------------------------------------------------------") 
    getAllClassDirs().each { File file -> 
     println(file.absolutePath) 
    } 
    println("-----------------------------------------------------------") 
    getAdditionalClassDirs().each{ File file -> 
     println(file.absolutePath) 
    } 
} 

Output 
----------------------------------------------------------- 
<path_here>\build\classes\main\com\bla 
----------------------------------------------------------- 
....more text here 
----------------------------------------------------------- 
<path_here>\build\classes\main\com\bla 
<path_here>\build\classes\main 
<path_here>\build\resources\main 
----------------------------------------------------------- 

- soru şu: bir şekilde org.gradle.testing.jacoco.plugins.JacocoPlugin#addDefaultReportTasks yöntemini geçersiz kılmak veya tamamen org.gradle.testing.jacoco.plugins.JacocoPlugin sınıfını geçersiz kılmak mümkün mü?

jacocoTestReport.doFirst{ 
    classDirectories = files('build/classes/main/com/bla') 
} 

Bu JacocoPlugin sınıfı tarafından belirlenen classDirectories geçersiz kılar: Tamam

cevap

10

, geçici bir çözüm buldu.

+0

Bu sadece classDirectories 'sınıfı? –

+0

Üzgünüm, uzun zaman önceydi, projenin son durumuyla güncel değilim. – StKiller

+0

Burada kendi sorumu sordum: http://stackoverflow.com/questions/29887805/filter-jacoco-coverage-reports-with-gradle. –

-1

birimi sınamaları çalıştırır

test 

dışında bir görev adları bir şey varsa, size build.gradle dosyasına aşağıdaki görevi ekleyerek raporu oluşturmak mümkün olmalıdır:

jacocoTestReport { 
    group = "Reporting" 
    description = "Generates Jacoco coverage reports for unit tests" 
    executionData = files('build/jacoco/unitTest.exec') 
    reports { 
     html.destination = 'build/reports/coverage' 
    } 
} 

Bu, birim testlerini çalıştırmak için görevden sonra açıkça belirtilmelidir, örn .:

gradle unitTest jacocoTestReport