我正在尝试从我的测试用例中运行批处理文件,使用以下代码在特定端口启动appium服务器:
String cmd="cmd /c \"cd C:\\Program Files\\Appium\\node_modules && start C:\\GitRapo\\MyProject\\samplenote2.bat\"";
Runtime r=Runtime.getRuntime();
Process pr=r.exec(cmd);
samplenote2.bat是一个批处理文件,用于打开cmd提示符的新实例,并提供以下命令:
node appium --address 127.0.0.1 -p 4727 @pause
此测试用例的其余部分应在此appium服务器上执行。当我手动运行testNGBatchFile.bat时,我可以调用testng.xml,后者又调用测试用例中指定的samplenote2.bat并执行其他操作。但是对于jenkins,执行时的testNGBatchFile.bat能够调用testng.xml但无法调用代码中提到的批处理文件(即无法启动appium服务器)
有人可以帮我吗?
答案 0 :(得分:0)
这不是詹金的问题。当您手动运行它时,我假设您打开该目录并运行,这意味着您位于同一目录中。
但是当您通过代码/批处理文件运行它时,同样的事情也不会发生。您需要导航文件所在的目录。
尝试添加 cd 命令并在执行每个文件之前提及相应的目录(包括批处理文件和testNG xml)。
例如: 如果要运行位于C:\ Test \ run.bat
内的批处理文件然后批处理文件中的第一个语句应为
cd C:\Test
如果您正在运行testNG XML文件,则与testNG文件相同。
此外,在java代码中,如果要调用任何批处理文件,则首先更改目录。它应该工作。