我有一个可执行的JAR,它包含所有依赖项和测试类 . 我已经确认在执行jar时会调用main()方法 . 我正在尝试向main()添加代码,以便我可以运行特定的TestNG测试类 . 从TestNG.org上的文档来看,这似乎就是这样做的:
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] { com.some.path.tests.MyTests.class });
testng.addListener(tla);
testng.run();
我的文件夹结构很典型:
/src/main/java/Main.java
/src/test/java/com/some/path/tests/MyTests.java
但是,当我尝试编译它时,我收到此错误:
java: /src/main/java/Main.java:46: package com.some.path.tests does not exist
无论如何我可以改变我的项目,以便main()中的testng.setTestClasses()可以访问测试类吗?
3 回答
我在main()方法中使用了以下内容并且它有效 .
您可以使用
org.testng.xml.Parser
和org.testng.xml.XmlSuite
在main中加载常用的xml如果那是你的文件夹结构,而不仅仅是一个类型,那就错了 . 包名称表示为文件夹结构,而不是包含包名称的文件夹 .
所以它应该是
src/test/java/com/some/path/tests/MyTests.java
另外,请确保您的测试类实际上在Jar文件中 . 如果您使用maven构建Jar,则默认情况下不会包含您的测试类 .