Java testng.testngeException:NullPointerException,通过reportng生成自定义报告

Java testng.testngeException:NullPointerException,通过reportng生成自定义报告,java,maven,selenium,testng,reportng,Java,Maven,Selenium,Testng,Reportng,我最近在testng.xml中添加了这段代码 <listeners> <listener class-name="org.uncommons.reportng.HTMLReporter"/> <listener class-name="org.uncommons.reportng.JUnitXMLReporter"/> </listeners> 它给了我以下的错误 org.testng.TestNGExceptio

我最近在testng.xml中添加了这段代码

<listeners>      
  <listener class-name="org.uncommons.reportng.HTMLReporter"/>
       <listener class-name="org.uncommons.reportng.JUnitXMLReporter"/>
</listeners>
它给了我以下的错误

 org.testng.TestNGException: java.lang.NullPointerException
    at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:341)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:88)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
Caused by: java.lang.NullPointerException
    at org.testng.xml.TestNGContentHandler.xmlListeners(TestNGContentHandler.java:356)
    at org.testng.xml.TestNGContentHandler.endElement(TestNGContentHandler.java:704)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endNamespaceScope(Unknown Source)
我添加了上面的侦听器,希望能够生成定制的报告。我在eclipse类路径中添加了报告的jar文件

那么,我如何修复错误呢


我是否将jar文件添加到其他地方?

而不是添加到testng插件ant build.xml中

 <testng classpath="class file path" suitename="suite1"
    outputDir="test output"    
    haltonfailure="true"
    useDefaultListeners="false"
    listeners="org.uncommons.reportng.HTMLReporter,org.uncommons.reportng.JUnitXMLReporter"
    >   
        <xmlfileset dir="${ws.home}" includes="testng.xml"/>
        <sysproperty key="org.uncommons.reportng.title" value="Report"/>    
    </testng>


只需确保将所有jar文件放在一起。

您会遇到此错误,因为您在套件之外添加了listeners标记 您应该使用testng.xml,如下所示

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Test"> 
    <listeners> 
        <listener class-name="org.uncommons.reportng.HTMLReporter"/>
        <listener class-name="org.uncommons.reportng.JUnitXMLReporter"/>
    </listeners>    
    <test name="Round1">
        <classes>
            <class name="testcases.common.testCase"/>
        </classes>
    </test>
</suite> 

这对我来说很好。我相信在更改xml文件后,您的问题将得到解决

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Test"> 
    <listeners> 
        <listener class-name="org.uncommons.reportng.HTMLReporter"/>
        <listener class-name="org.uncommons.reportng.JUnitXMLReporter"/>
    </listeners>    
    <test name="Round1">
        <classes>
            <class name="testcases.common.testCase"/>
        </classes>
    </test>
</suite>