Проблема двойной кавычки TeamCity в параметре командной строки Maven - PullRequest
0 голосов
/ 27 апреля 2018

У нас есть процесс CICD с определенным набором TC, выполняемых всегда для процесса стробирования. Иногда нет необходимости запускать все тесты, вместо этого мы хотели бы запускать только набор TC, основываясь на изменениях, сделанных разработчиками. Наши тесты основаны на истории пользователей, основанной на огурцах, и, следовательно, мы можем контролировать запуск теста по тегам. Моя идея состоит в том, чтобы параметризовать cucumber.options из поля параметров командной строки maven teamcity и позволить разработчикам Dev / support определять тег по мере необходимости.

Если я упомяну параметр командной строки как

-Dcucumber.options="--tags %env.test.scope%"

Мой mavenized проект получает значение как cucumber.options = "--tags @Sanity (Предположим, значение env.test.scope равно @Sanity). Если вы обратите внимание, почему я получаю двойную кавычку? Это разрушает мой TestRunner, и ни один из тестов не запускается. Если я удаляю двойные кавычки, то я получаю ошибку mvn, поскольку @Sanity не распознается как допустимая цель (из-за пробела между --tags и @), как определить значение моего параметра (cucumber.options) с пробелом в нем?

1 Ответ

0 голосов
/ 29 апреля 2018

Похоже, это больше связано с JVM (для запуска Maven) и -D, чем с TeamCity. Правильный способ передачи параметра будет «-Dcucumber.options = - tags% env.test.scope%», так как он должен получить в качестве отдельного параметра JVM, а затем проанализировать с параметром «cucumber.options» с помощью «--tags% env.test.scope%». "значение.

...