Gradle проверка задачи, если свойство определено
У меня есть задача gradle, которая выполняет тестовый набор testng.
Я хочу, чтобы иметь возможность передать флаг в задачу, чтобы использовать специальный файл xml-пакета testng (или просто использовать пакет по умолчанию, если флаг не установлен).
gradle test
Должен запускать стандартный набор тестов по умолчанию
gradle test -Pspecial
Должен запускать специальный набор тестов
Я пробовал что-то вроде этого:
test {
if (special) {
test(testng_special.xml);
}
else {
test(testng_default.xml);
}
}
Но я получаю ошибку свойства undefined. Каков правильный способ сделать это?
Ответы
Ответ 1
if (project.hasProperty('special'))
должен это сделать.
Обратите внимание, что то, что вы делаете, чтобы выбрать набор testng, не будет работать, AFAIK: тестовая задача не имеет метода test()
. Обратитесь к https://discuss.gradle.org/t/how-to-run-acceptance-tests-with-testng-from-gradle/4107 для рабочего примера:
test {
useTestNG {
suites 'src/main/resources/testng.xml'
}
}
Ответ 2
Это сработало для меня:
test {
if (properties.containsKey('special')) {
test(testng_special.xml);
}
else {
test(testng_default.xml);
}
}
Ответ 3
От Gradle Документация:
-P, --project-prop
Устанавливает свойство проекта корневого проекта, например -Pmyprop = myvalue
Итак, вы должны использовать:
gradle test -Pspecial=true
со значением после имени свойства