2016-06-30 6 views
6

build.gradleКак передать свойства системы испытаниям в градиенте умным способом?

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

Теперь можно либо передать параметры в командной строке:

gradle test -Dparam=10 

или поместить их в gradle.properties:

systemProp.param=15 

В идеале Я хотел бы поместить значения по умолчанию в gradle.properties, и сможете перезаписать их из командной строки. К сожалению, если я это сделаю, у gradle.properties будет приоритет, а -Dparam=10 будет проигнорирован.

Не могли бы вы предложить какие-либо решения?

+1

https://discuss.gradle.org/t/can-props-from-gradle-properties-be-overwritten-with-d-parameter/6759/6 Похоже, что свойства системы, определенные в gradle.properties, в настоящее время не могут перезаписываться с помощью -D – tomasulo

+0

спасибо, обновляя оболочку градиента до новейшей версии, решил проблему. –

ответ

1

https://issues.gradle.org/browse/GRADLE-2122

Он работает с 2.12 или 2.13 "умный способ" уже!

Приведенный выше пример работает, опция командной строки -D овердрайвов по умолчанию в gradle.properties

0

Я использую Gradle 2.12 и обмена, как я использовал его:

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

У меня есть Тесты JUnit, которые я хотел пропустить, если свойство не использовалось для включения таких тестов. Использование JUnit Предположим, в том числе тесты условно:

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

Делать это с Gradle требуется, чтобы свойство системы при условии, в момент запуска Gradle сборки, показанный здесь,

gradle build -Ddeep.test.run=true 

действительно прошел в тесты.

Надеюсь, что это поможет другим испытать этот подход для проведения тестов условно.

 Смежные вопросы

  • Нет связанных вопросов^_^