运行suits时使用testng.xml获取空指针异常,同时能够使用testng运行单个测试用例
我创建了这三个套件,同时尝试使用Testng.xml获取Nullpointer异常来运行所有套件。在所有三个suites.xml代码和Testng.xml代码的代码之后提到。如果您发现这个空指针异常的原因,请告诉我运行suits时使用testng.xml获取空指针异常,同时能够使用testng运行单个测试用例,testng,Testng,我创建了这三个套件,同时尝试使用Testng.xml获取Nullpointer异常来运行所有套件。在所有三个suites.xml代码和Testng.xml代码的代码之后提到。如果您发现这个空指针异常的原因,请告诉我 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="Su
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteA" >
<!-- suite name="Suite Name" -->
<test name="TestA1" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteA.TestCaseA1" />
</classes>
</test>
<test name="TestA2" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteA.TestCaseA1" />
</classes>
</test>
</suite>
************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteB" >
<!-- suite name="Suite Name" -->
<test name="TestB1" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteB.TestCaseB1" />
</classes>
</test>
<test name="TestB2" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteB.TestCaseB2" />
</classes>
</test>
</suite>
***************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteC" >
<!-- suite name="Suite Name" -->
<test name="TestC1" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteC.TestCaseC1" />
</classes>
</test>
<test name="TestC2" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteC.TestCaseC2" />
</classes>
</test>
</suite>
********************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="TestNG Dadadriver suite" >
<!-- suite name="Suite Name" -->
<suite-files>
<suite-file path="./suiteA.xml" />
<suite-file path="./suiteB.xml" />
<suite-file path="./suiteC.xml" />
</suite-files>
</suite>
org.testng.TestNGException:java.lang.NullPointerException
在org.testng.testng.initializeSuitesAndJarFile(testng.java:320)上
位于org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:109)
位于org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236)
位于org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:81)
原因:java.lang.NullPointerException
位于org.testng.xml.Parser.parse(Parser.java:179)
在org.testng.testng.initializeSuitesAndJarFile(testng.java:300)上
... 3个以上
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteA" >
<!-- suite name="Suite Name" -->
<test name="TestA1" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteA.TestCaseA1" />
</classes>
</test>
<test name="TestA2" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteA.TestCaseA1" />
</classes>
</test>
</suite>
************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteB" >
<!-- suite name="Suite Name" -->
<test name="TestB1" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteB.TestCaseB1" />
</classes>
</test>
<test name="TestB2" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteB.TestCaseB2" />
</classes>
</test>
</suite>
***************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteC" >
<!-- suite name="Suite Name" -->
<test name="TestC1" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteC.TestCaseC1" />
</classes>
</test>
<test name="TestC2" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteC.TestCaseC2" />
</classes>
</test>
</suite>
********************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="TestNG Dadadriver suite" >
<!-- suite name="Suite Name" -->
<suite-files>
<suite-file path="./suiteA.xml" />
<suite-file path="./suiteB.xml" />
<suite-file path="./suiteC.xml" />
</suite-files>
</suite>
请使用正确的标签名称,可能-
<!-- Note the lowercase change to tag names -->
<suite name="SuiteB">
<test name="TestCaseB1">
<classes>
<class name="com.qtpselenium.suiteB.TestCaseB1" />
</classes>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteA" >
<!-- suite name="Suite Name" -->
<test name="TestA1" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteA.TestCaseA1" />
</classes>
</test>
<test name="TestA2" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteA.TestCaseA1" />
</classes>
</test>
</suite>
************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteB" >
<!-- suite name="Suite Name" -->
<test name="TestB1" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteB.TestCaseB1" />
</classes>
</test>
<test name="TestB2" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteB.TestCaseB2" />
</classes>
</test>
</suite>
***************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteC" >
<!-- suite name="Suite Name" -->
<test name="TestC1" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteC.TestCaseC1" />
</classes>
</test>
<test name="TestC2" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteC.TestCaseC2" />
</classes>
</test>
</suite>
********************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="TestNG Dadadriver suite" >
<!-- suite name="Suite Name" -->
<suite-files>
<suite-file path="./suiteA.xml" />
<suite-file path="./suiteB.xml" />
<suite-file path="./suiteC.xml" />
</suite-files>
</suite>
你可以在这里找到它们的文档-
. 作为XML标记,它们大多使用小写加连字符。下面的代码非常适合使用selenium运行多个套件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteA" >
<!-- suite name="Suite Name" -->
<test name="TestA1" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteA.TestCaseA1" />
</classes>
</test>
<test name="TestA2" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteA.TestCaseA1" />
</classes>
</test>
</suite>
************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteB" >
<!-- suite name="Suite Name" -->
<test name="TestB1" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteB.TestCaseB1" />
</classes>
</test>
<test name="TestB2" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteB.TestCaseB2" />
</classes>
</test>
</suite>
***************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteC" >
<!-- suite name="Suite Name" -->
<test name="TestC1" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteC.TestCaseC1" />
</classes>
</test>
<test name="TestC2" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteC.TestCaseC2" />
</classes>
</test>
</suite>
********************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="TestNG Dadadriver suite" >
<!-- suite name="Suite Name" -->
<suite-files>
<suite-file path="./suiteA.xml" />
<suite-file path="./suiteB.xml" />
<suite-file path="./suiteC.xml" />
</suite-files>
</suite>
************************
***************************
********************************
您是如何执行这些测试的?使用Maven或其他方法?通过右键单击testng.xml文件并以TestNGAre的身份运行这些使用Maven的项目中的案例,或者可以使用它?@ArpanSaini您能确认上面的共享文件是否与您使用的相同吗?@MaciejKowalski:不,我还没有使用Maven。我想我已经使用了write标记,你觉得有什么不一致吗above@ArpanSaini-您使用大写字母作为
,应该是
,感谢您指出bro,它现在起作用了,即使我使用大写字母作为类和类标记,它也起作用了,正确的代码在这里,谢谢bro:)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteA" >
<!-- suite name="Suite Name" -->
<test name="TestA1" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteA.TestCaseA1" />
</classes>
</test>
<test name="TestA2" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteA.TestCaseA1" />
</classes>
</test>
</suite>
************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteB" >
<!-- suite name="Suite Name" -->
<test name="TestB1" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteB.TestCaseB1" />
</classes>
</test>
<test name="TestB2" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteB.TestCaseB2" />
</classes>
</test>
</suite>
***************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteC" >
<!-- suite name="Suite Name" -->
<test name="TestC1" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteC.TestCaseC1" />
</classes>
</test>
<test name="TestC2" allow-return-values="true">
<classes>
<!-- packagename.Testcase class name -->
<class name ="com.qtpselenium.suiteC.TestCaseC2" />
</classes>
</test>
</suite>
********************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="TestNG Dadadriver suite" >
<!-- suite name="Suite Name" -->
<suite-files>
<suite-file path="./suiteA.xml" />
<suite-file path="./suiteB.xml" />
<suite-file path="./suiteC.xml" />
</suite-files>
</suite>