0
Я хочу запустить Test Suite программно с помощью TestNG.TestNG: программный запуск теста - параметры, установленные в объекте XmlTest, являются нулевыми при выполнении метода теста
Я создал тест structurde: XmlSuite -> XmlTest -> TestClass (который расширяет XmlClass)
Я делаю три вещи:
- добавляющие параметр в XmlTest с addParameter (String, String)
- установки параметра в TestClass с SetParameters (Карта)
- установкой переменного дня в TestClass
Но что происходит при выполнении теста, когда он переходит к методу @Test, у объекта нет вещей, которые я задал раньше.
Код
public class TestRunner {
public static void main(String[] args) {
XmlSuite suite = new XmlSuite();
suite.setName("TmpSuite");
XmlTest test = new XmlTest(suite);
test.setName("TmpTest");
// Add parameter to XmlTest
test.addParameter("testParam1", "clock");
TestClass testClass = new TestClass();
// Add parameter to XmlClass
Map<String, String> testClassParameters = new HashMap<>();
testClassParameters.put("classParam1", "valueOfClassParam1");
testClass.setParameters(testClassParameters);
// Set day variable
testClass.setDay("Friday");
testClass.setClass(TestClass.class);
test.setXmlClasses(Arrays.asList(testClass)) ;
TestNG tng = new TestNG();
tng.setXmlSuites(Arrays.asList(suite));
tng.run();
}
}
public class TestClass extends XmlClass {
private String day;
@Test
public void test1() {
System.out.println("Day: " + day);
System.out.println("LocalParameters: " + getLocalParameters());
System.out.println("AllParameters: " + getAllParameters());
}
public void setDay(String day) {
this.day = day;
}
}
Результат:
Day: null
LocalParameters: {}
------------> Exception
Да, что-то около этого. Но номера параметров могут отличаться для TestClasses, которые будут абстрактными. Лучше всего было бы передать параметр «Карта как параметр», но возможно только «Строка». Я хотел бы иметь TestClass, содержащий разные объекты, которые не будут иметь значения null при выполнении. – jnowakow
Вместо этого вы можете добавить «ITestContext», но если не хотите, как легко найти параметры класса, потому что ITestContext предоставляет вид. –
juherr