Каратэ: передача динамических значений параметров через командную строку не работает - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь передать URL из командной строки, когда я запускаю интеграционные тесты каратэ в командной строке.Я посмотрел на это и попытался сделать то же самое, но пока что безуспешно.

У меня есть этот karate-config.js файл

function karateconf() {
  karate.configure('connectTimeout', 5000);
  karate.configure('readTimeout', 5000);
  var config = { baseURL: 'http://localhost:8080' };

  if (karate.env == 'ci') {
    config.baseURL = karate.properties['base.URL'];
    karate.log('*******************************', karate.properties['base.URL']);
  }

  return config;
}

И я бегутест с использованием gradle, как это

./gradlew integrationTest -Dkarate.env=ci  -Dbase.URL=http://someurl:8080

А вот журналы каратэ

14:12:54.599 [pool-1-thread-1] INFO  com.intuit.karate - ******************************* null 
14:12:54.827 [pool-1-thread-1] ERROR com.intuit.karate - url not set, please refer to the keyword documentation for 'url'
14:12:54.827 [pool-1-thread-1] ERROR com.intuit.karate - http request failed: url not set, please refer to the keyword documentation for 'url'
14:12:54.836 [pool-1-thread-1] INFO  c.i.karate.cucumber.CucumberRunner - <<<< feature 1 of 1 on thread pool-1-thread-1: com/guidewire/lifecycle/controller/configuration-controller.feature
14:12:55.359 [Test worker] INFO  n.m.cucumber.ReportParser - File '/workspace/configuration-service/configuration-infrastructure/app-backend/lifecycle/target/surefire-reports/TEST-com.guidewire.lifecycle.controller.configuration-controller.json' contain 1 features

Я не мог понять, чего мне здесь не хватает.

1 Ответ

0 голосов
/ 23 мая 2018

Gradle?Это описано в документации: https://github.com/intuit/karate#command-line - и похоже, что вам нужно добавить base.URL в файл сборки Gradle так же, как показано ниже:

Для Gradle вы должны расширитьтестовое задание, позволяющее передавать cucumber.options в Cucumber-JVM (в противном случае они потребляются самим gradle).Для этого добавьте следующее:

test {
    // pull cucumber options into the cucumber jvm
    systemProperty "cucumber.options", System.properties.getProperty("cucumber.options")
    // pull karate options into the jvm
    systemProperty "karate.env", System.properties.getProperty("karate.env")
    // ensure tests are always run
    outputs.upToDateWhen { false }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...