Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven测试自动化项目_Maven_Automation_Testng_Test Data - Fatal编程技术网

Maven测试自动化项目

Maven测试自动化项目,maven,automation,testng,test-data,Maven,Automation,Testng,Test Data,我有一个使用selenium和testng开发的maven测试自动化项目。这就是我对我的框架所做的: 1.我在src/main/java中有main类,在main类中,我使用触发器方法动态创建和运行testng xml 2.要运行的测试由XMLFlag.xls表确定,测试的测试数据在src/main/resources中的TestNG.xlsx表中设置 3.我已经成功地为我的整个软件包创建了一个jar 因为我已经将测试数据表(TestNG.xlsx和xmlfag.xls)放在src/main/r

我有一个使用selenium和testng开发的maven测试自动化项目。这就是我对我的框架所做的:

1.我在src/main/java中有main类,在main类中,我使用触发器方法动态创建和运行testng xml

2.要运行的测试由XMLFlag.xls表确定,测试的测试数据在src/main/resources中的TestNG.xlsx表中设置

3.我已经成功地为我的整个软件包创建了一个jar

因为我已经将测试数据表(TestNG.xlsx和xmlfag.xls)放在src/main/resources下,所以这些测试数据表被打包在jar中

但理想情况下,我希望为不同的测试数据集运行测试脚本,并查看脚本是否成功。 例如:我想第一次使用用户名:abcd和密码:1234运行脚本,然后使用用户名:efgh和密码:9876运行同一组脚本

但是由于我的测试数据表打包在jar中,我将无法实现上述场景,因为我无法编辑测试数据表

因此,让我说,为了克服上述问题: 1.我将测试数据表放在src/Test/resources而不是src/main/resources中,然后创建一个jar。 但当我这样做并试着运行罐子时

我收到一条错误消息:

.\src\test\resources\XMLFlag.xls (The system cannot find the path specified)
我相信这是因为测试数据表被放在目标文件夹下的testclasses文件夹中,而不是放在jar中

简而言之: 我我希望测试数据表在我的jar之外,这样就可以根据用户的需求对其进行编辑并运行测试脚本。 ii.如果测试数据表在我的jar之外,并且我的框架内的所有其他内容都依赖于测试数据信息(即test scripts、testng.xml)并且打包在jar中,那么我的jar将不会运行

有没有办法避免这个错误并完成我想做的事情? 或者我应该重新构建我的整个框架


请帮助我。

在执行jar时,将测试数据表作为程序参数传递如何

就是

java -jar c:/path/to/your/jar c:/path/to/your/testng.xlsx c:/path/to/your/xmlflag.xlsx
然后在main方法中,读取文件名及其内容,例如

File testNgXlsxFile = new File(args[0]);
并将文件中的信息传递给框架


这可能吗?

将尝试一下,看看我是否面临困难。尝试过这个,现在它正在工作。非常感谢@Stepan Vavra