Java 如何在可执行JAR中加载TestNG配置?
我有一个由Maven构建创建的着色可执行jar。我有一个主类,它执行并尝试运行一组TestNG测试。它一直运行,直到尝试加载测试的xml配置文件为止。主类中的步骤包括:Java 如何在可执行JAR中加载TestNG配置?,java,maven,jar,testng,executable-jar,Java,Maven,Jar,Testng,Executable Jar,我有一个由Maven构建创建的着色可执行jar。我有一个主类,它执行并尝试运行一组TestNG测试。它一直运行,直到尝试加载测试的xml配置文件为止。主类中的步骤包括: suites.add("testng-A.xml"); suites.add("testng-B.xml"); testng.setTestSuites(suites); testng.addListener(tla); testng.run(); 问题是我无法让TestNG成功找到x
suites.add("testng-A.xml");
suites.add("testng-B.xml");
testng.setTestSuites(suites);
testng.addListener(tla);
testng.run();
问题是我无法让TestNG成功找到xml文件。我收到一个“java.io.FileNotFoundException:testng-a.xml(没有这样的文件或目录)”错误。JAR中文件的位置为:
/com/address/MyMainClass
/testng-a.xml
/testng-b.xml
我使用以下命令运行jar:
java -jar uber.jar
有什么办法可以让它工作吗?看起来这不能在罐子里完成。无法以这种方式加载testng xml配置。在加载之前,这些文件需要在JAR外部
你能将路径设置为绝对路径吗?看起来这是一个已知的问题:我尝试将路径编码为“/Users/myDevDirectory/target/uber.jar!/testng-a.xml”作为一个实验,但没有成功。这也是你所指的吗?上面的问题1)与此问题无关,2)已结束并解决。我在邮件列表上回复了TERACyTE,请参见下面的链接。在我的java代码中,我将内部资源复制到一个临时文件夹中,并使用TestListenerAdapter使用xml定义运行测试。