Как передать свойства системы JVM в мои тесты? - PullRequest
5 голосов
/ 13 апреля 2011

У меня есть следующая задача

task testGeb(type:Test) {
   jvmArgs '-Dgeb.driver=firefox'
   include "geb/**/*.class"
   testReportDir = new File(testReportDir, "gebtests")
}

Системное свойство не подходит для тестов Geb, так как Geb не запускает Firefox для запуска тестов. Когда я устанавливаю то же системное свойство в Eclipse и запускаю тесты, все работает нормально.

Ответы [ 5 ]

16 голосов
/ 13 апреля 2011

Попробуйте использовать системные свойства:

test {
   systemProperties['geb.driver'] = 'firefox'
   include "geb/**/*.class"
   testReportDir = new File(testReportDir, "gebtests")
}
5 голосов
/ 17 ноября 2015

Вы также можете напрямую установить системное свойство в задаче:

task testGeb(type:Test) {
    System.setProperty('geb.driver', 'firefox')}

(решение выше также будет работать для типа задачи, отличного от Test)

или, если вы хотите передавать различные свойства из командной строки, вы можете включить более гибкое решение в определение задачи:

task testGeb(type:Test) {
    jvmArgs project.gradle.startParameter.systemPropertiesArgs.entrySet().collect{"-D${it.key}=${it.value}"}
}

и тогда вы можете запустить: ./gradlew testGeb -D[anyArg]=[anyValue], в вашем случае: ./gradlew testGeb -Dgeb.driver=firefox

1 голос
/ 16 марта 2017

Добавьте systemProperties System.getProperties() в свою задачу

test {
  ignoreFailures = false
  include "geb/**/*.class"
  testReportDir = new File(testReportDir, "gebtests")
  // set a system property for the test JVM(s)
  systemProperties System.getProperties()
}

, чтобы его можно было настроить во время выполнения теста.Например

gradle -Dgeb.driver=firefox test
gradle -Dgeb.driver=chrome test 
1 голос
/ 15 июня 2016
Below code works fine for me using Gradle and my cucumber scenarios are passing perfectly. Add below code in your build.gradle file:

//noinspection GroovyAssignabilityCheck

test{

    systemProperties['webdriver.chrome.driver'] = '/usr/bin/google_chrome/chromedriver'

}

Примечание. Я использовал ОС Ubuntu и путь chrome_driver, указанный в / usr / bin / google_chrome /, и ваш путь зависит от вашего пути.

0 голосов
/ 31 июля 2012

Я бы порекомендовал сделать следующее

gradle myTask -DmyParameter=123

со следующим кодом

task myTask {
    doLast {
        println System.properties['myParameter']
    }
 }

Вывод должен быть

gradle myTask -DmyParameter = 123: myTask 123

СТРОИТЬ УСПЕШНО

Общее время: 2,115 с

...