2013-06-04 6 views
11

Ho una struttura di progetto simile alla seguente. Voglio utilizzare la funzionalità TestReport in Gradle per aggregare tutti i risultati del test in un'unica directory. Quindi posso accedere a tutti i risultati del test tramite un singolo file index.html per TUTTI i sottoprogetti. Come posso realizzare questo?risultati del test multiproject aggregato gradle utilizzando TestReport

. 
|--ProjectA 
    |--src/test/... 
    |--build 
    |--reports 
     |--tests 
     |--index.html (testresults) 
     |--.. 
     |--.. 
|--ProjectB 
    |--src/test/... 
     |--build 
     |--reports 
      |--tests 
      |--index.html (testresults) 
      |--.. 
      |--.. 

risposta

21

Da Example 23.13. Creating a unit test report for subprojects nel Gradle User Guide:

subprojects { 
    apply plugin: 'java' 

    // Disable the test report for the individual test task 
    test { 
     reports.html.enabled = false 
    } 
} 

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

campione completamente funzionante è disponibile presso samples/testing/testReport nella distribuzione completa Gradle.

+0

Hey Pete, ho bisogno di qualche direzione. Nel mio caso, ho un solo progetto, ad esempio ProjectA, e dopo l'integrazione di gradle clean buildTest, vedo build/jacoco/test.exec e build/jacoco/integrationTest.exec. Sotto build/reports/tests/xxxxxx vedo index.html per i test unitari o solo test di integrazione, cioè se eseguo build gradle clean, vedo unit test index.html e se eseguo gradle clean build integrationTest, sovrascrive i dati in build/reports/tests/xxx e ottiene i nuovi dati per l'attività integrationTest nella stessa cartella (build/reports/tests). –

+0

Analogamente, quando eseguo sonar-runner, vedo entrambi i file .exec che vengono rilevati durante JacocoSensor e vedo anche jacoco in generale .exec che viene creato nell'area di lavoro nella cartella .sonar e nella cartella build/reports/jacoco. il sonar-runner è stato completato con successo, ma non vedo i risultati nel dashboard del progetto in Sonar, anche se ho entrambi i widget impostati per mostrare test unitari/copertura e test di integrazione. Si prega di avvisare ciò che potrebbe mancare. –

+0

È necessario impostare una directory separata per i test di integrazione (consultare [Riferimento lingua Gradle Build] (http://gradle.org/docs/current/dsl/index.html)). Non sono sicuro del problema del Sonar. –

1

Per 'connectedAndroidTest di v'è un approccio pubblicato da Google. (https://developer.android.com/studio/test/command-line.html#RunTestsDevice (Multi-module rapporti sezione))

  1. Aggiungere la 'Android-reporting' Plugin per i vostri progetti build.gradle.

    apply plugin: 'android-reporting'

  2. eseguire i test di Android con ulteriore argomento 'mergeAndroidReports. Unirà tutti i risultati dei test dei moduli del progetto in un unico report.

    ./gradlew connectedAndroidTest mergeAndroidReports

+0

Anche se il documento dice che può anche unire i test unitari, l'esecuzione di questo compito dipende dai test dell'espresso che non è qualcosa che speravo. – tasomaniac

Problemi correlati