У меня есть большой набор TestNG, который вызывается с помощью задачи «test» в Gradle. Набор работает очень хорошо, но у меня возникли трудности с вопросом о Gradle для информации набора тестов. В частности, списки включенных и исключающих групп.Получение пустых списков групп TestNG в Gradle
Моя конфигурация группы в моей testng.xml выглядит примерно так:
<groups>
<run>
<exclude name="notReady" />
</run>
</groups>
Моя цель состоит в том, чтобы обеспечить средства для пользователя, чтобы указать, включать/исключать группы во время выполнения, используя свойства командной строки, а затем добавить их в соответствующие списки в конфигурации testng. Единственный улов - мне все равно нужно уважать существующую конфигурацию include/exclude в файле testng.xml.
Вот краткий build.gradle пример того, что я пытаюсь делать в блоке задач (минус командной строки синтаксического анализа, чтобы сохранить код простым):
test {
useTestNG() {
suites("src/test/resources/testng.xml")
Set<String> excludeGroups = getExcludeGroups() // Returns an empty set
excludeGroups.add("someOtherGroup")
setExcludeGroups(excludeGroups)
}
}
Я бы ожидать excludeGroups быть [ 'notReady'], но вместо этого я возвращаю пустой набор. То же самое происходит и с getIncludeGroups(). Я подозреваю, что это потому, что sets() на самом деле не загружает и не анализирует XML-файл (ы) при вызове, но у меня нет никаких доказательств, подтверждающих это.
Я просматривал документы TestNGOptions, но я не уверен, что я делаю что-то неправильно или это просто ожидаемое поведение. Очевидно, что я могу обойти эту проблему, указав свои списки включения/исключения по умолчанию в build.gradle вместо testng.xml, но это кажется неуклюжим. Если бы кто-нибудь мог осветить это для меня, это было бы очень признательно.
Спасибо,
Энди