TestNg.run, возникающий в результате исключения нулевого указателя, когда комплект сделан программно - PullRequest
0 голосов
/ 10 октября 2018

Мне нужно сгенерировать комплекты тестов программно на основе параметров теста.

Это основная функция:

public class DataValidator {
public static void main (String args[]) {
    TestState testState = new TestState();

    //Create an instance on TestNG
    TestNG testNg = new TestNG();

    List<XmlSuite> suites = new ArrayList<XmlSuite>();

    TestRunner testRunner = new TestRunner(testState);
    XmlSuite testSuite = testRunner.generateSuite();

    suites.add(testSuite);
    testNg.setXmlSuites(suites);
    testNg.run();
}   
}

Это запускщик тестов, который генерирует комплекты тестов.

public class TestRunner {
   private TestState testState;

public TestRunner(TestState testState) {
    this.testState = testState;
}


public XmlSuite generateSuite( ) {
    XmlSuite testSuite = new XmlSuite();
    XmlTest xmlTest = new XmlTest();
    xmlTest.setName("TestState");    

    List<XmlClass> xmlClasses = new ArrayList<XmlClass>();

    xmlClasses.add(new XmlClass(JobCreated.class.getName()));
    xmlTest.setXmlClasses(xmlClasses);
    testSuite.addTest(xmlTest);
    return testSuite;
}

Это класс, созданный заданием

public class JobCreated {

@Test
public void test1() {
    System.out.println("passed test 1");
}
}

Когда я запускаю тест как приложение Java, я получаю следующее исключение NullPointerException:

Exception in thread "main" java.lang.NullPointerException
at org.testng.xml.XmlTest.getVerbose(XmlTest.java:249)
at org.testng.TestRunner.init(TestRunner.java:212)
at org.testng.TestRunner.<init>(TestRunner.java:167)
at org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(SuiteRunner.java:663)
at org.testng.SuiteRunner.init(SuiteRunner.java:260)
at org.testng.SuiteRunner.<init>(SuiteRunner.java:198)
at org.testng.TestNG.createSuiteRunner(TestNG.java:1295)
at org.testng.TestNG.createSuiteRunners(TestNG.java:1273)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1128)
at org.testng.TestNG.runSuites(TestNG.java:1049)
at org.testng.TestNG.run(TestNG.java:1017)
at data_validator_testng.DataValidator.main(DataValidator.java:39)

Я не могучтобы понять, что вызывает эту ошибку.

1 Ответ

0 голосов
/ 10 октября 2018

, так как среди XmlTest нет правильной ссылки, а m_suite падает null

/**
* @return Returns the verbose.
*/
public int getVerbose() {
  Integer result = m_verbose;
  if (null == result || XmlSuite.DEFAULT_VERBOSE.equals(m_verbose)) {
    result = m_suite.getVerbose(); 
}

Это было исправлено путем добавления testSuite в конструктор XmlTest

XmlTest xmlTest = new XmlTest(testSuite);

Эта ссылка помогло найти решение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...