погулил ответов не нашёл прямых(воркеарундов много типа через sh переписать значение перед запуском или юзать проперти устаналиваемые на CI итд)
желаемый флоу такой
- есть раннер тестов где ${stage} желаемый изменять параметр на ходу перед запуском билда
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Test suite" verbose="10" parallel="classes" data-provider-thread-count="1">
<parameter name="stage" value="${stage}"/>
<test name="Test first">
<classes>
<class name="suites.draft.TestNgPoc">
<methods>
<include name="test1"/>
<include name="test2"/>
</methods>
</class>
</classes>
</test>
</suite>
- есть гредл типа
task testDebugSuite(type: Test) {
gradle.startParameter.rerunTasks = true
testLogging.showStandardStreams = true
useTestNG {
useDefaultListeners false
ignoreFailures true
suites 'src/test/resources/run/stub-runner.xml'
}
}
- есть пайплайн
parameters {
choice(
choices: 'author\npublish\ndispatcher',
description: 'select server',
name: 'SERVERS'
)
choice(
choices: 'testDebugSuite\naaaaaaaaa',
description: 'select suite',
name: 'SUITE'
)
def server = params.SERVERS
switch (server) {
case "author":
def command = "gradle ${params.SUITE}"
sh command
break
Как это хотелось бы чтобы работало:
- а) передаём параметр в гредл ${params.SERVERS}
- б) или сетаем переменнную системную и читаем в гредле
server= “$System.env.SERVER”
-
сетаем переменную в хмл файл…
пока не нашёл примера чтобы testNg такое поддерживал… -
Как вариант - можно ли вызвать тест НГ в пайплайне и на ходу сетнуть параметры перед запуском теста? передать в гредл готовый вариант
навеяно этим постом
Cannot parse xml file in jenkins pipeline - Stack Overflow
Судя по наследованию параметров через родителя
что-то можно подумать чререз лиснеры
которые будут забирать системные переменные