2012-12-11 13 views
7

Ist es möglich, eine Aufgabe Definition von einem anderen zu erben? Was ich tun möchte, ist, einige Testprofile erstellen, also würde ich Standardtest haben -Gradle Aufgabe Definition Vererbung

test { 

    include 'com/something/something/**' 
    exclude 'com/something/else/**' 

    maxParallelForks 5 

    testLogging{ 
     exceptionFormat "full" 
     showStackTraces = false 
    } 

    jvmArgs '-Xms128m', '-Xmx512m', '-XX:MaxPermSize=128m' 
} 

und einige einen weiteren Test mit überschriebene „umfassen“ oder „maxParallelForks“ Teil usw.

Ist es möglich, ohne neue Task-Klasse erstellen?

Antwort

10

Sie all diese Aufgaben in einem Rutsch konfiguriert werden können, sofern sie von der gleichen Art sind mit dem folgende Konstrukt:

tasks.withType(Test) { 
    include 'com/something/something/** 
    ... 
} 

Dies konfiguriert alle Aufgaben vom Typ „Test“ in einem Rutsch. Danach können Sie die Konfigurationen überschreiben.

oder wenn Sie nicht alle Aufgaben einrichten möchten oder einige von ihnen einen anderen Typ haben, können Sie sie wie im folgenden Ausschnitt aufführen.

["test","anotherTestTask"].each { name -> 
    task "$name" { 
    include ... 
    } 
} 

Denken Sie daran, Sie haben die volle Scripting Macht Groovy, so gibt es hier viele Möglichkeiten ...

+1

Danke, ich glaube, ich mit dem ersten Konstrukt „tasks.withType (Test gehe) *. configure ... ". Ich bin immer noch neugierig, ob es einen Weg gibt, einen Vererbungsbaum zu konstruieren - eine globale Testdefinition zu haben, dann einen testSuite1 globalen Test auszuprobieren, dann testSuite2 testSuite2 zu erweitern, ... Ich weiß, dass es einige "Hacks" gibt, wie ich kann dies erreichen, obwohl ich immer noch eine nette DSL-Unterstützung dafür sehen möchte. – mawek

+1

Die Syntax kann zu 'tasks.withType (Test) {...}' und 'task" $ t "{...}' vereinfacht werden. Wir glauben, dass explizite * Konfigurationsregeln * ein besserer Ansatz sind als ein Vererbungsmechanismus mit all seiner versteckten Semantik. Daher haben wir nicht vor, einen hinzuzufügen. –

+0

Danke für die Vereinfachungen Peter :) –

Verwandte Themen