运行testng.xml时出现java.lang.NullPointerException错误

时间:2011-04-28 09:11:38

标签: java testng

运行testng.xml时出现以下错误

  

ant run_testNG

Buildfile: build.xml
run_testNG:
   [testng] Exception in thread "main" java.lang.NullPointerException
   [testng]     at org.testng.xml.Parser.parse(Parser.java:189)
   [testng]     at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:351)
   [testng]     at org.testng.TestNG.run(TestNG.java:854)
   [testng]     at org.testng.TestNG.privateMain(TestNG.java:1178)
   [testng]     at org.testng.TestNG.main(TestNG.java:1137)
   [testng] The tests failed.
BUILD SUCCESSFUL
Total time: 0 seconds

我的testng.xml看起来像是:

<project default="test">

 <path id="cp">
   <pathelement location="/softwares/lib/testng-5.13.1.jar"/>
   <pathelement location="/softwares/cruisecontrol-bin-2.8.3/run_test/run_test/build"/>
 </path>

 <taskdef name="testng" classpathref="cp" classname="org.testng.TestNGAntTask" />

 <target name="test">
   <testng classpathref="cp" groups="fast">
     <classfileset dir="build" includes="com/example/test/*.class"/>
   </testng>
 </target>

</project>

我的build.xml文件是:

        

<property name="lib.dir"   value="/softwares/lib"/>
<property name="src.dir" value="/softwares/src" />

                                                                                                                                                                                                                                                                          

<target name="run_testNG" description="Run TestNG">
    <testng classpathref="compile.classpath" haltOnfailure="false">
        <xmlfileset dir="/softwares/cruisecontrol-bin-2.8.3/run_test/" includes="testng.xml" />
    </testng>
</target>
<target name="start-server">
    <java jar="/softwares/selenium/selenium-server-standalone-2.0b2.jar" fork="true" spawn="true">
        <arg line="-timeout 30"/>
        <jvmarg value="-Dhttp.proxyHost=proxy.corporate.com"/>
        <jvmarg value="-Dhttp.proxyPort=3128"/>
    </java>
</target>
<target name="stop-server">
    <get taskname="selenium-shutdown"
        src="http://localhost:4444/selenium-server/driver/?cmd=shutDownSeleniumServer"
        dest="result.txt" ignoreerrors="true" />
    <echo taskname="selenium-shutdown" message="DGF Errors during shutdown are expected" />
</target>
<taskdef resource="testngtasks" classpath="/softwares/selenium/selenium-2.0b2/libs/testng-5.14.1.jar" />

任何人都可以帮助我......为什么我会收到此错误。我们将非常感谢您的帮助

3 个答案:

答案 0 :(得分:1)

看起来问题是这不是一个testng XML文件。它是一个Ant构建文件。

有关真正的testng XML文件应该是什么样的信息,请参阅here。或者,重命名该文件并使用Ant来运行测试; e.g。

$ mv testng.xml build.xml
$ ant test

然而,奇怪的是,当你给它一个它没有理解的XML文件时,testng会以如此壮观的方式失败。或许测试不充分? : - )

答案 1 :(得分:0)

向我看来好像找不到您的testng.xml文件。这是XML解析器抛出NPE的一个可能原因:null输入。我看到ant默认为build.xml。你有一个build.xml文件吗?

查看run_testNG脚本,您可以/必须添加文件的完整路径。

答案 2 :(得分:0)

我有同样的问题,
但是我发现我正在挑选一个dbUnit数据集文件,该文件与我设置的模式匹配,以匹配testng xml文件(* test.xml)。 简单地重命名了文件,我很高兴。

希望这会有所帮助,即使问题是在不久前提出来的。