2016-06-30 24 views
6

build.gradle ŞimdiSistem özelliklerini, akıllı şekilde testlere nasıl geçirirsiniz?

tasks.withType(Test){ 
    systemProperties=System.properties 
    println systemProperties['param'] 
} 

Ben komut satırında parametreleri geçirebilirsiniz ya:

gradle test -Dparam=10 

veya gradle.properties koydu: İdeal

systemProp.param=15 

Varsayılanları 'a eklemek istiyorum gradle.properties, ve bunların komut satırından üzerine yazabilmesi. Maalesef bunu yaparsam, graptic.properties önceliklidir ve -Dparam=10 göz ardı edilir.

Bu konuda herhangi bir çözüm önerebilir misiniz?

+1

https://discuss.gradle.org/t/can-props-from-gradle-properties-be-overwritten-with-d-parameter/6759/6 Şu anda gradle.properties içinde tanımlı olan sistem özellikleri şu anda görünmüyor gibi görünüyor -D – tomasulo

+0

kullanarak üzerine yazılır, teşekkür ederim, gradle sarmalayıcıyı en yeniye güncellemek, sorunu çözdü. –

cevap

0

Ben gradle 2,12 kullanarak ve bunu nasıl kullandığını paylaşıyorum varsayılanları overdrive, çalışıyor: Ben

test { 
    // support passing -Dsystem.property=value to bootRun task 
    systemProperties = System.properties 
} 

JUnit, bir mülkün bu testleri dahil etmediği sürece atlamak istediğimi test ediyor. şartlı dahil olmak üzere testler varsayın JUnit kullanma: gradle ile Bunu yapmak

//first line of test 
assumeThat(Boolean.parseBoolean(System.getProperty("deep.test.run","false"),true) 

, gradle yapısı çalıştırmayı sırasında sağlanan sistem özelliği, burada gösterilen gerektiriyordu

gerçekten hiç geçirildi

gradle build -Ddeep.test.run=true 
testleri.

Bu, diğerlerinin koşullu olarak sınamaları çalıştırmak için bu yaklaşımı denemelerine yardımcı olur.