在TestNG中按顺序执行测试

pla*_*irt 3 java testing testng automated-tests

我有多个测试类,应该按顺序执行.我testng.xml用以下内容创建了文件.

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="MyTestSuite1" verbose="2" parallel="methods" thread-count="1">
    <listeners>
        <listener class-name="utils.TestNGListener"></listener>
    </listeners>

    <test name="Regression" parallel="false" verbose="2">
        <classes>
            <class name="test.LoginTest" />
            <class name="test.ClearTest" />
            <class name="test.SendMessageTest" />
        </classes>
    </test>
</suite>
Run Code Online (Sandbox Code Playgroud)

main()为项目创建了方法来提供入口点.

public static void main(String[] args) throws IOException, SAXException, ParserConfigurationException {
    TestNG testNG = new TestNG();

    String xmlFileName = "testng.xml";
    List<XmlSuite> suite = (List<XmlSuite>)(new Parser(xmlFileName).parse());
    testNG.setXmlSuites(suite);

    testNG.run();
}
Run Code Online (Sandbox Code Playgroud)

我不确定,如何按指定顺序执行测试套件,得到错误信息.

线程"main"中的异常org.testng.TestNGException:在类路径中找不到类:test.LoginTest

输出tree命令:

C:.
????.idea
?   ????libraries
????META-INF
????out
?   ????artifacts
????resources
?   ????leanftjar
????RunResults
?   ????Resources
?       ????Snapshots
?       ????User
????src
?   ????main
?   ?   ????java
?   ?   ?   ????hu
?   ?   ?   ?   ????mysoft
?   ?   ?   ????jar
?   ?   ?   ?   ????META-INF
?   ?   ?   ????META-INF
?   ?   ?   ????unittesting
?   ?   ?   ????utils
?   ?   ????resources
?   ????test
?       ????java
?           ????test
????target
?   ????classes
?   ?   ????hu
?   ?   ?   ????mysoft
?   ?   ????leanftjar
?   ?   ????unittesting
?   ?   ????utils
?   ????generated-sources
?   ?   ????annotations
?   ????generated-test-sources
?   ?   ????test-annotations
?   ????maven-status
?   ?   ????maven-compiler-plugin
?   ?       ????compile
?   ?           ????default-compile
?   ????test-classes
?       ????test
????test-output
    ????All Test Suite
    ????junitreports
    ????old
        ????All Test Suite
Run Code Online (Sandbox Code Playgroud)

Kri*_*van 6

问题出在您的代码中.默认情况下,驻留在的类src/main/java不具有驻留在的类的可见性src/test/java.因此,当您在main()方法中从src/main/javaTestNG 创建TestNG实例时,尝试从同一个方法加载类,因为它无法找到它们,所以它会抛出异常.

要解决此问题,请将包含main()方法的类移到包中,src/test/java然后重试.它会工作.