2016-05-24 15 views
0

Hier ist meine build.gradle:Aufgaben Gradle Plugin Hinzufügen Aufruf zu bauen

plugins { 
    id 'net.saliman.cobertura' version '2.3.1' 
} 

apply plugin: 'groovy' 
apply plugin: 'idea' 

repositories { 
    mavenCentral() 
} 

sourceCompatibility = 1.8 
targetCompatibility = 1.8 

dependencies { 
    compile(
     'org.codehaus.groovy:groovy-all:2.4.6' 
    ) 

    testCompile(
     'org.spockframework:spock-core:1.0-groovy-2.4' 
    ) 
} 

cobertura { 
    coverageCheckTotalLineRate = 95 

    coverageCheckHaltOnFailure = true 
} 

Wie Sie sehen Ich habe das Gradle Cobertura Plugin einrichten. Typischerweise über meine Anwendung erstellen:

./gradlew build 

Aber Cobertura zu laufen, ich habe einen ganz anderen Aufruf auszuführen:

./gradlew cobertura coberturaCheck 

ich diese so verdichten will, dass ./gradlew build läuft auch diese 2 Cobertura laufende Tasks.

Wie kann ich meine Build neu konfigurieren, damit ./gradlew build auch ./gradlew cobertura coberturaChecknach läuft alle Tests laufen fertig?

Antwort

1

Ich habe mir kurz die Quellen des Cobertura-Plugins angesehen.
Die Abhängigkeiten, die die Tests vor Cobertura usw. ausführen müssen, werden vom Plugin korrekt eingerichtet, daher sollte die richtige Reihenfolge als gegeben gelten.

Tatsächlich sind alle Tasks vom Typ Test so eingerichtet, dass die Generierung des Cobertura Reports immer nach ihnen und der Coverage-Prüfung erfolgt. Diese Aufgaben sind einfach standardmäßig deaktiviert.

Durch Hinzufügen von coberturaCheck zu dem auszuführenden Task-Graphen werden alle Cobertura-Tasks einschließlich der Coverage-Prüftask aktiviert.

Durch Hinzufügen von cobertura zum Aufgabengraphen werden alle Cobertura-Aufgaben mit Ausnahme der Aufgabenbereichsüberprüfung aktiviert. Wenn Sie also bereits coberturaCheck zum Aufgabengraphen hinzugefügt haben, hat das Hinzufügen von cobertura den einzigen Effekt, dass es von allen Aufgaben des Typs Test abhängt.

Wie in Ihrem Projekt die einzige Aufgabe des Typs Test die Aufgabe test genannt ist, die bereits von check auf abgehangen, die von build auf abgehangen, ist es genug, um auf coberturaCheck abzuhängen die cobertura Aufgaben zu ermöglichen, so tun, nur build.dependsOn coberturaCheck in Ihrer Build-Datei, oder wenn Sie es mehr mögen check.dependsOn coberturaCheck.

Wenn Sie dennoch auch auf cobertura abhängen wollen, weil Sie befürchten vielleicht, dass die Aufgaben des Typs Test in der Zukunft hinzugefügt werden, die auf durch Aufgabe nicht abhängig ist check, können Sie natürlich auch tun, dass. Dies würde wie build.dependsOn tasks.cobertura, coberturaCheck oder check.dependsOn tasks.cobertura, coberturaCheck aussehen.

Die zusätzliche tasks. für cobertura notwendig ist, denn es gibt auch eine Erweiterung cobertura genannt Projektes, das vor der Suche nach einem Task aufgerufen genommen werden würde cobertura so müssen Sie explizit angeben, dass Sie hier die Aufgabe wollen.