2017-04-04 1768 views
1

我正在使用Jenkins來安排我的硒/ java自動化測試(將測試腳本打包到.jar文件中)。Jenkins | 「系統找不到指定的文件」

我創建了.bat文件來觸發.jar文件,我打電話給Jenkins的.bat文件。

當我手動觸發測試時,通過雙擊.bat文件,一切運行平穩。但是,當我嘗試運行通過詹金斯一樣,我收到以下錯誤每個測試案例:

「系統找不到指定文件」

詹金斯被成功調用.bat文件,因爲我可以看到jenkins控制檯上顯示的測試用例名稱(存在於.jar文件中)。

在我的java代碼中,我已經使用.\來表示我的jar文件存在的「當前目錄」以及數據驅動自動化框架的excel文件。即使.bat文件存在於相同的位置,並且我在.bat文件和jenkins上都給出了完全合格的路徑。

我不能硬編碼,將不得不在我的java代碼中使用./。我正在Windows Server上運行(不是我的本地機器)。

+0

也許[this](http://stackoverflow.com/a/25440709/2861476)可能有所幫助。 –

+0

當你手動運行它時,你從哪個目錄運行它?在運行'.bat'文件之前,你有沒有試圖讓詹金斯換成同一個目錄?我的猜測是這是一個工作目錄問題,與其他文件不同,你的'.bat'或'.jar'文件。 – mrfreester

+0

@mrfreester - 我從C:/ Desktop/QA目錄手動運行它,在jenkins中,在配置生成操作下,我選擇了'windows bat文件'並給出了完整路徑 - C:/ Desktop/QA/trigger。bat 此外,在bat文件中,我將PATH和CLASSPATH值分別設置爲C:/ProgramFiles/java/jdk1.7和C:/ Desktop/QA目錄。 –

回答

0

問題是與安裝詹金斯。 devops工程師爲我解決了這個問題。必須在其中安裝Tomcat和jenkins。他說:「如果Jenkins作爲UI安裝,它不能打開另一個UI,因此我們應該在一個單獨的服務器上安裝.war文件,爲jenkins創建單獨的UI,並且我的應用程序UI(firefox)可以在本地」 。

0

確定放置.bat文件的當前目錄路徑,並將/ add添加到系統路徑變量。一旦完成,然後讓jenkin執行.bat文件。

+0

哪裏可以找到路徑變量?在詹金斯? 在bat文件中,我將PATH和CLASSPATH值分別設置爲C:/ProgramFiles/java/jdk1.7和C:/ Desktop/QA目錄。 C:/ Desktop/QA擁有我所有的文件,bat,jar,excel ... –

0

當你在Jenkins上運行時,這是一個與你的工作目錄不同的問題。

最簡單的修復程序: 執行Windows批處理命令,而不是您的構建步驟。在第一行中,將cd C:/Desktop/QA/更改爲您的工作目錄以匹配您在本地執行的操作。在你的第二行使用trigger.batC:\Desktop\QA\trigger.bat

更強大的修復程序: 在您的java代碼中,當引用其他文件時,您正在使用.\。這基本上意味着當前目錄,如果您位於不同的工作目錄中,這不會成爲您想要的目錄。相反,您可以使用look at this question/answer,它顯示如何引用.jar文件所在的目錄而不是工作目錄。總結這樣做:

return new File(MyClass.class.getProtectionDomain().getCodeSource() 
    .getLocation().toURI().getPath()); 
+0

感謝您的幫助@ mrfreester。我遵循了一些爲我工作的替代方案。 –

相關問題