2017-02-23 75 views
0

我想逃離我的測試案例中的批處理文件使用下面的代碼在一個特定的端口上啓動appium服務器:在詹金斯使用批處理文件來觸發的testng.xml

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是

節點appium --address 127.0.0.1 -p 4727 @pause

在此之後休息我的測試案例應該在此appium執行:這將打開命令提示符的新實例,並給出以下命令的批處理文件服務器。當我手動運行testNGBatchFile.bat時,我能夠調用testng.xml,然後調用samplebody2.bat在測試用例中指定並執行其他操作。但在jenkins的情況下,testNGBatchFile.bat執行時能夠調用testng.xml,但無法調用代碼中提到的批處理文件(即無法啓動appium服務器)

任何人都可以幫助我解決這個問題嗎?

回答

0

它不是詹金的問題。當您手動運行它時,我假設您打開該目錄並運行,這意味着您位於相同的目錄中。

但是,當您通過代碼/批處理文件運行它時,不會發生同樣的情況。您需要導航文件所在的目錄。

嘗試添加cd命令並在執行每個文件(包括批處理文件以及testNG xml)之前提及相應的目錄。

例如: 如果你想運行位於C內的批處理文件:\測試\ run.bat中

然後你裏面的批處理文件第一條語句應該是

cd C:\Test 

同對於testNG文件,如果您正在運行testNG XML文件。

此外,在Java代碼中,如果您正在調用任何批處理文件,請首先更改目錄。它應該工作。

+0

已經做了你在說什麼。在testNGBatchFile.bat中,我正在設置項目位置,cd%projectlocation%,爲bin和lib文件夾設置classpath,然後執行testNG.xml。對於其他批處理文件,我已經提到了上面的代碼。先導航到位置,然後調用批處理文件。當我在Jenkins中調用testNGBatchFile.bat時,問題在於它能夠調用testNG.xml,但無法打開新的cmd提示符以啓動「samplenote2.bat」,因爲我的測試正在被跳過。我可以在執行cmd節代碼之前在控制檯中打印一些消息。 – Amrit

+0

@Amrit你可以添加完整的代碼嗎? – Vinod

+0

整個代碼的PFB鏈接。 https://github.com/amritkrishan/Appium/tree/master/MyProject – Amrit