运行suits时使用testng.xml获取空指针异常,同时能够使用testng运行单个测试用例

运行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

我创建了这三个套件,同时尝试使用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="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>