Selenium webdriver 以编程方式创建套件时,运行导致的空指针异常

Selenium webdriver 以编程方式创建套件时,运行导致的空指针异常,selenium-webdriver,testng,Selenium Webdriver,Testng,我需要根据测试的参数以编程方式生成测试套件 这是主要功能: 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 = n

我需要根据测试的参数以编程方式生成测试套件

这是主要功能:

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();
}   
}
当我作为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)
线程“main”java.lang.NullPointerException中的异常 位于org.testng.xml.XmlTest.getVerbose(XmlTest.java:249) 位于org.testng.TestRunner.init(TestRunner.java:212) 位于org.testng.TestRunner.(TestRunner.java:167) 位于org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(SuiteRunner.java:663) 位于org.testng.SuiteRunner.init(SuiteRunner.java:260) 位于org.testng.SuiteRunner(SuiteRunner.java:198) 位于org.testng.testng.createSuiteRunner(testng.java:1295) 位于org.testng.testng.createSuiteRunners(testng.java:1273) 位于org.testng.testng.runSuitesLocally(testng.java:1128) 位于org.testng.testng.runSuites(testng.java:1049) 位于org.testng.testng.run(testng.java:1017) 位于data\u validator\u testng.DataValidator.main(DataValidator.java:39)
我无法理解导致此错误的原因。

因为XmlTest和m_suite之间没有正确的链接,因此将为空

/**
* @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);

这有助于找到解决方案

,因为XmlTest和m_suite之间没有正确的链接

/**
* @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);
这有助于找到解决方案