Windows 使用Jenkins中的批处理文件触发testng.xml
我正在尝试从测试用例内部运行批处理文件,以使用以下代码在特定端口启动appium服务器:Windows 使用Jenkins中的批处理文件触发testng.xml,windows,batch-file,jenkins,cmd,appium,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是一
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 prompt的一个新实例,并发出以下命令:
节点应用程序--地址127.0.0.1-第4727页
@停顿
在此之后,我的测试用例的其余部分应该在这个appium服务器上执行。当我手动运行testNGBatchFile.bat时,我能够调用testng.xml,它反过来调用测试用例中指定的samplenote2.bat并执行其他操作。但对于jenkins,执行时的testNGBatchFile.bat可以调用testng.xml,但无法调用代码中提到的批处理文件(即无法启动appium服务器)
有人能帮我吗?这不是詹金的问题。当您手动运行它时,我假设您打开该目录并运行,这意味着您位于同一目录中 但在代码/批处理文件中运行时,不会发生同样的情况。您需要导航文件所在的目录 尝试添加cd命令,并在执行每个文件之前提及相应的目录(包括批处理文件和testNG xml) 例如: 如果要运行位于C:\Test\run.bat中的批处理文件 那么批处理文件中的第一条语句应该是
cd C:\Test
如果您正在运行testNG XML文件,则testNG文件也是如此
另外,在java代码中,如果调用任何批处理文件,则首先更改目录。它应该会起作用。我已经按照你说的做了。在testNGBatchFile.bat中,我正在设置项目位置,cd%projectlocation%,为bin和lib文件夹设置类路径,然后执行testNG.xml。对于其他批处理文件,我已经提到了上面的代码。首先导航到位置,然后调用批处理文件。当我在Jenkins中调用testNGBatchFile.bat时,问题是它能够调用testNG.xml,但无法打开新的cmd提示符来启动“samplenote2.bat”,因此我的测试被跳过。在对整个代码执行cmd section code.PFB链接之前,我能够在控制台中打印一些消息。