2012-12-11 19 views
7

Bir görev tanımını bir diğerinden mi devralması mümkün müdür? Ne yapmak istiyorum bazı test profilleri oluşturmak, yani varsayılan testini olurdu -Not görev tanımı kalıtım

test { 

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

    maxParallelForks 5 

    testLogging{ 
     exceptionFormat "full" 
     showStackTraces = false 
    } 

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

ve overriden "içerir" veya "maxParallelForks" bölümü ile bazı başka bir test vb

o olmadan mümkün mü yeni Görev sınıfı oluşturuluyor mu?

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

Bu tek seferde tip "Testi" nin tüm görevleri yapılandırır:

cevap

10

tek bir seferde tüm bu görevleri yapılandırabilirsiniz, bunlar şu yapısı kullanılarak aynı tipte konum sağladı. Bundan sonra konfigürasyonları geçersiz kılabilirsiniz.

veya tüm görevleri ayarlamak istemiyorsanız veya bunların bazıları farklı türde varsa, bunları aşağıdaki kod parçasında olduğu gibi sıralayabilirsiniz.

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

Eğer Groovy tam betik gücüne sahip, bu yüzden burada birçok seçeneği vardır unutmayın ...

+1

sayesinde Senin için ilk yapı "tasks.withType (Test ile gidersiniz düşünüyorum)*.Yapılandır..." . Bir miras ağacını inşa etmenin bir yolu varsa - hala küresel bir test tanımına sahip olmak için biraz testSuite1, daha sonra bazı testSuite1 genişleyen global testi, sonra testSuite2 testSuite2 genişletmek için bir yol varsa ... Ben bazı "hack" olduğunu biliyorum Bunu başarabilirim, yine de bunun için güzel bir DSL desteği görmek isterim. – mawek

+1

Sözdizimi 'task.withType (Test) {...}' ve 'task '$ t" {...} 'için basitleştirilebilir. Açık * yapılandırma kurallarının * tüm gizli anlamlarıyla bir miras mekanizmasından daha iyi bir yaklaşım olduğuna inanıyoruz. Dolayısıyla, bir tane ekleme planımız yok. –

+0

Basitleştirmeler için teşekkürler Peter :) –