2013-04-11 191 views
1

我設置了Jenkins,以便它構建我的項目,運行一些測試,然後創建一個包含報告的HTML頁面。Jenkins將無法正確執行.bat中的命令

我做了一個.bat文件,在瀏覽器中打開html報告。有在.bat文件中添加一行:

"E:\user\Visual Studio 2010\JenkinsWorkspace\JobTest\index.html" 

當我運行在一個提示,蝙蝠自己,頁面的index.html是開放的(所以它的工作原理)。

但問題是,當我建立一個詹金斯的工作來運行該.bat,沒有任何反應, 作業在調用.bat後卡住,永遠不會結束。

任何想法爲什麼?

注意:我有其他的.bat(不打開html頁面)由Jenkins成功執行。

編輯:這是我在提示日誌得到詹金斯菜單中的錯誤:

C:\Program Files\Jenkins\jobs\JobTest2_enUnSeulScript\workspace>echo " Opening html page" " >> Opening html page"

C:\Program Files\Jenkins\jobs\JobTest2_enUnSeulScript\workspace>"C:\Program Files\Google\Chrome\Application\chrome.exe" "E:\user\Visual Studio 2010\JenkinsWorkspace\JobTest\testResults.14h05m15s65ms.11.04.2013.trx.htm" [688:3900:0411/140520:ERROR:gpu_info_collector_win.cc(96)] Can't retrieve a valid WinSAT assessment.
[688:3900:0411/140520:ERROR:process_singleton_win.cc(540)] Lock file can not be created! Error code: 32
[688:3900:0411/140520:ERROR:chrome_browser_main.cc(1157)] Failed to create a ProcessSingleton for your profile directory. This means that running multiple instances would start multiple browser processes rather than opening a new window in the existing process. Aborting now to avoid profile corruption.
Build step 'Exécuter une ligne de commande batch Windows' marked build as failure [htmlpublisher]
Archiving HTML reports... [htmlpublisher] Archiving at PROJECT level E:\user\Visual Studio 2010\JenkinsWorkspace\JobTest to C:\Program Files\Jenkins\jobs\JobTest2_enUnSeulScript\htmlreports\HTML_Tests_Report Finished: FAILURE

+0

命令提示符的黑色窗口是否出現? – user2033427 2013-04-11 11:48:05

+0

但我不認爲它應該出現,因爲其他腳本工作,也不顯示黑色提示。但是我可以在Jenkins的菜單中訪問該提示的輸出。這是HTML頁面中提示的文本。 – gpalex 2013-04-11 12:02:35

+0

爲了使用Internet Explorer打開html,我改變了命令行,但當與Jenkins一起啓動腳本時(但在腳本在提示中手動啓動時),頁面仍然不會打開。所以問題不是特定於鉻。當使用IE打開頁面時,我沒有收到任何錯誤,但頁面未打開。 – gpalex 2013-04-11 12:31:25

回答

1

我猜你詹金斯安裝運行爲Windows服務。當Jenkins在Windows計算機上作爲服務運行時,它將在系統帳戶下運行,而不是用戶帳戶。系統帳戶通常不具有與用戶帳戶相同的設置。

您可能想嘗試啓動CMD shell作爲系統帳戶。 (這個問題的答案應該幫助你:How Do You Run CMD under System Account。)從那裏,嘗試運行批處理文件,看看會發生什麼。你可能會發現你需要在PATH之前設置一些東西。

+0

好主意。我沒有將腳本作爲System運行,而是配置了Jenkins的服務,以便它以我的身份運行(管理員)。不幸的是沒有任何改變。 – gpalex 2013-04-11 14:26:04

+0

@gpalex在你的批處理文件中添加一些語句來轉儲環境變量(可能只是「SET」會做到這一點),並檢查當你運行它時以及當jenkins運行它時輸出的內容可能會很有趣。 – jwernerny 2013-04-11 15:36:51

5

如果您將Jenkins作爲Window的服務運行,您可能需要啓用該服務才能與桌面交互。請執行以下操作:

  1. 打開服務模塊上詹金斯
  2. 單擊鼠標右鍵,選擇「屬性」
  3. 在「登錄」選項卡,運行爲「本地系統帳戶」,然後選擇「允許服務與桌面」複選框

互動 - 或 -

您可以通過命令行運行詹金斯。即:「java -jar jenkins.war」。

0

我知道這是晚了,但我只是回答瞭如何打開一個.exe另一個問題(或.bat)從詹金斯的服務在Windows

Open Excel on Jenkins CI

的問題是,當你的命令實際上作品,它在Session 0(這是啓動您的Jenkins服務的Local System用戶的會話)中執行的操作,在通過您自己的用戶帳戶登錄時看不到,很可能在Session 1中。

希望這會有幫助