Java 使用特定文件夹中的测试类从runnable jar运行TestNG XML套件

Java 使用特定文件夹中的测试类从runnable jar运行TestNG XML套件,java,xml,jar,automated-tests,testng,Java,Xml,Jar,Automated Tests,Testng,因此,我有一个TestNG xml文件,如下所示: <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="Test-class Suite" parallel="classes" thread-count="4" > <listeners> <listener class-name="ExtentReporterNG" /> <

因此,我有一个TestNG xml文件,如下所示:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Test-class Suite" parallel="classes" thread-count="4" >
   <listeners>
      <listener class-name="ExtentReporterNG" />
   </listeners>
   <test name="Test-class test" allow-return-values="true">
      <classes>
         <class name="tests.TestCase1" />
         <class name="tests.TestCase2" />
         <!-- more classes -->
      </classes>
   </test>
</suite>

此测试套件使用以下java代码以编程方式启动:

TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
List<String> testFilesList = new ArrayList<String>();
testFilesList.add("./testng.xml");
testng.setTestSuites(testFilesList);
testng.setUseDefaultListeners(false);
testng.addListener(tla); 
testng.run();
TestListenerAdapter tla=newtestlisteneradapter();
TestNG TestNG=新的TestNG();
List testFilesList=newarraylist();
testFilesList.add(“./testng.xml”);
setestsuites(testFilesList);
setUseDefaultListeners(false);
testng.addListener(tla);
testng.run();
如果我现在将一个新的测试文件,例如
TestCase3
添加到包
tests
中,我只需将相应的行
添加到xml文件中(此步骤稍后将自动执行),如果我再次运行java程序,新的测试也将执行

但是,如果我将其导出为runnable jar,测试执行仍然有效,但我失去了将新测试用例放到包文件夹中的能力,因为
测试
包显然与所有库一起打包到.jar文件中,不再由文件夹表示

有没有办法在testng.xml文件的
标记中指定文件的路径,例如:
,这样我就可以将测试文件放到该文件夹中并运行.jar?
如果没有,是否有其他方法来实现这一点


感谢您的帮助

您需要将类路径添加到类文件的目录中


有关详细信息,请参见。祝你好运

在构建路径设置中添加了一个新的类文件夹,现在似乎可以工作了。谢谢!