从runnable jar运行TestNG XML套件,并在特定文件夹

时间:2016-03-16 13:34:32

标签: 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" />
   </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();

如果我现在添加一个新的测试文件,例如对TestCase3tests我只需将相应的行<class name="tests.TestCase2" />添加到xml文件中(此步骤将在稍后自动执行),如果我再次运行我的java程序,则新测试将也被执行。

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

有没有办法在testng.xml文件中的<class>标记中指定文件的路径,例如:<class name="/path/to/folder/TestCaseXY" />,所以我可以删除该文件夹中的测试文件并运行的.jar?
如果没有,还有另一种方法可以实现这一目标吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

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

有关详细信息,请参阅Setting the Class Path,并根据需要查看ask another question。祝你好运!