Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как передать параметр с Jenkins в testng.xml.

jenkins
java
webdriver
testng
Теги: #<Tag:0x00007f7b6d151a90> #<Tag:0x00007f7b6d151838> #<Tag:0x00007f7b6d151220> #<Tag:0x00007f7b6d150f00>

(Oleg Kuzovkov) #1

Здравствуйте.

Собсвенно интересует данный вопрос.

Знаю что параметры с Jenkins можно перечитаь с System.getenv(“parameterName”)(Java) в тесте. Но как же передать значение в testng.xml что бы сохранить в репорте отображение входящих параметров в тест.

Подскажите, пожалуйста, кто знает.

Заранее благодарен.


(Sergey Korol) #2

testng.xml не поддерживает плейсхолдеры. Но в рантайме параметры засетить можно:

	@BeforeClass
	public void pushParameters(ITestContext context) {
		context.getCurrentXmlTest().getXmlClasses().stream()
				.forEach(testClass -> testClass.getIncludedMethods()
						.forEach(testMethod -> testMethod.addParameter("param1", "value1")));
	}

	@Test
	@Parameters({"param1"})
	public void sampleOutputTest(String param) {
		System.out.println("I'm a message from sampleOutputTest() -> " + param);
	}

Тут важной является точка обращения к контексту. В @BeforeMethod переопределить контекст параметров метода не получится (физически возможность то есть, но они просто не будут видны через @Parameters). Придется подняться на уровень класса или теста.