Когда я запускаю локальные тесты на огурец с помощью следующих аргументов:
-ea -Dplatform=android -Dcucumber.options="--tags @mytag"
, он работает, но когда я запускаю его с docker run
, он игнорирует параметры огурца. .
Мне нужно запустить его из задания Jenkins и запустить в докере.
В моем Jenkinsfile:
sh "docker run --env JAVA_OPTS='-ea -Dplatform=$platform -Dcucumber.options=$cucumberOptions'...
В Jenkinsжурнал конвейера:
docker run --env 'JAVA_OPTS=-ea -Dplatform=android -Dcucumber.options="--tags @Check_Pricing_Payment_Org"'...
Мой класс TestTunner:
@RunWith(Cucumber.class)
@CucumberOptions(
features = {"src/test/resources/functionalTests/"},
plugin = {"pretty","json:target/cucumber-reports/Cucumber.json","html:target/cucumber-reports/htmlReports.html" },
glue= {"stepDefinitions"}
)
public class TestRunner {
}
Любая помощь или подсказка будут оценены. Спасибо!
РЕДАКТИРОВАТЬ
В качестве обходного пути мы теперь используем это в нашем Jenkinsfile:
script {
if (env.STEP_TO_RUN.toBoolean()) {
stage('First satage') {
withMaven(maven:'mvn') {
sh 'export GOOGLE_APPLICATION_CREDENTIALS="whatevercredentials.json" && mvn clean test -Dcucumber.options="--tags @MyTag --tags @OtherTag"'
}
}
}
}
И в нашей работе CI STEP_TO_RUN
был добавлен в качестве логического параметра цепочки.
Таким образом, мы заставили его работать в gcloud. Надеюсь, это кому-нибудь поможет!