在Jenkins中使用批处理文件来触发testng.xml

时间:2017-02-23 14:12:55

标签: windows batch-file jenkins cmd appium

我正在尝试从我的测试用例中运行批处理文件,使用以下代码在特定端口启动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服务器)

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

这不是詹金的问题。当您手动运行它时,我假设您打开该目录并运行,这意味着您位于同一目录中。

但是当您通过代码/批处理文件运行它时,同样的事情也不会发生。您需要导航文件所在的目录。

尝试添加 cd 命令并在执行每个文件之前提及相应的目录(包括批处理文件和testNG xml)。

例如: 如果要运行位于C:\ Test \ run.bat

内的批处理文件

然后批处理文件中的第一个语句应为

cd C:\Test

如果您正在运行testNG XML文件,则与testNG文件相同。

此外,在java代码中,如果要调用任何批处理文件,则首先更改目录。它应该工作。