所以我有一个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();
如果我现在添加一个新的测试文件,例如对TestCase3
包tests
我只需将相应的行<class name="tests.TestCase2" />
添加到xml文件中(此步骤将在稍后自动执行),如果我再次运行我的java程序,则新测试将也被执行。
但是,如果我将其导出为runnable jar,测试执行仍然有效,但我放弃了将新测试用例放在包文件夹中的能力,因为test
包显然与所有库包装在一起进入.jar文件,不再由文件夹表示。
有没有办法在testng.xml文件中的<class>
标记中指定文件的路径,例如:<class name="/path/to/folder/TestCaseXY" />
,所以我可以删除该文件夹中的测试文件并运行的.jar?
如果没有,还有另一种方法可以实现这一目标吗?
感谢您的帮助
答案 0 :(得分:0)
您需要将类路径添加到类文件的目录中。
有关详细信息,请参阅Setting the Class Path,并根据需要查看ask another question。祝你好运!