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)
问题出在您的代码中.默认情况下,驻留在的类src/main/java不具有驻留在的类的可见性src/test/java.因此,当您在main()方法中从src/main/javaTestNG 创建TestNG实例时,尝试从同一个方法加载类,因为它无法找到它们,所以它会抛出异常.
要解决此问题,请将包含main()方法的类移到包中,src/test/java然后重试.它会工作.