2016-04-07 12 views
1

Basit bir project with subprojects sahibiyim ve gradle test komutunu çalıştırdığımda tüm testler için birleştirilmiş rapor oluşturmak istiyorum. Ben gradle documentation takip ettim ve şu eklediGradle - run testi Tüm alt modüller için test aşamasından sonra bir görev tanımlayın

: Ben gradle test testReport yürüttüğünüzde

task testReport(type: TestReport) { 
    // make sure this task is run after all subproject test tasks 
    mustRunAfter subprojects*.test 

    destinationDir = file("$buildDir/reports/allTests") 
    // Include the results from the `test` task in all subprojects 
    reportOn subprojects*.test 
} 

Bu çalışır, ancak ben kök projesinde gradle test veya gradle build yürütüldüğünde - Görev testReport çalıştırılmaz.

Her seferinde belirtmeksizin görevi nasıl yürütür? Yapınız için aşağıdaki kutuya tıklayınız:

cevap

2

Ekle: test.finalizedBy 'testReport' Sadece kök seviyesinde, herhangi bir kapanışın içinde olmak zorunda değildir.

taskX.finalizedBy taskY 

Her defasında görev yürütür GörevX başarıyla yürütmeyi tamamlar.

+0

Merhaba, cevabınız için teşekkür ederim. Çözümünüz bana şu hata mesajını veriyor: 'Kök projesi' özellik testi 'toplantısı' bulunamadı 'gradle-test-aggregation' –

+0

Sadece kodunuza baktım. Java eklentisi tarafından 'test' görevi eklenir ve sadece java eklentisini alt projelere uygularsınız, bu yüzden gradle 'test' görevini bulamaz. Eklentiyi kök projenize de uygulayabilir veya "alt projeler" bölümünü "tüm projeler" haline getirebilirsiniz ve bu da işe yarayacaktır. – RaGe

+0

Sanırım şimdi anlıyorum. Ben root projesinde java eklentisini kullanmak istemiyorum (boş bir kavanoz oluşturacak ve ne yapamayacaktı). 'Sahte' testi el ile tanımlamak ve istediğimi elde etmek için root build.gradle'da görevler oluşturmaktan daha iyi bir yol var mı? [updated build.gradle] (https://github.com/frant-hartm/gradle-aggregate-test-report/blob/master/build.gradle#L24) –

İlgili konular