2015-05-07 2 views
0

У меня есть проект Java TestNG, созданный с помощью тестовых наборов с градиентом. В настоящее время большинство тестов вытаскивают определенные параметры из файла констант.properties. Как мне изменить их в командной строке при выполнении задачи градации? Будет ли gradle -DapplicationKey=0000 заменить строку applicationKey=1234 в моем файле констант.properties?Свойства Java-файлов и Gradle

Редактировать: Чтобы узнать более подробно о ситуации и вопросе, файл констант.properties содержит около 400-500 свойств, которые уже определены. Я бы хотел, чтобы полностью не переписывать эти свойства в градиенте. Я просто хочу переопределить эти свойства из командной строки, когда Jenkins запускает те же команды, что и часть задания сборки.

ответ

0

Вы хотите передать свойства системы JVM, используемому для запуска тестов. Вот способ настроить все задачи типа Test:

tasks.withType(Test) { 
    systemProperty 'applicationKey', System.getProperty('applicationKey', '1234') 
} 

или только одна задача

test { 
    useTestNG() 
    systemProperties = [ 
      applicationKey: System.getProperty('applicationKey', '1234') 
    ] 
} 

Вы можете также скопировать все свойства системы из окружающей среды Gradle к виртуальной машине ребенка с systemProperties = System.getProperties()

+0

Это замечательно, но я бы хотел сделать это в командной строке. Причина для этого - цели, которые мы обычно нажимаем, зарегистрированы в файле констант.properties, но цели, которые мы хотим, чтобы дженкинсы ударили, не являются. Я хотел бы установить jenkins, чтобы переопределить файл констант.properties в командной строке, чтобы попасть в цели jenkins. –

+0

Вы пробовали мой код? Если ваши тесты читают свойства системы, и вы запускаете их в Jenkins с помощью 'gradle test -DapplicationKey = 0000', что происходит? – Raffaele

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