2016-08-15 93 views
-1

我有一個Java項目(巨大的),我是要部署到脫機環境。包裝JAVA測試來測試我的應用程序在離線環境

此環境只能訪問Nexus(工件存儲庫),但不能訪問我的git存儲庫, 因此,我使用腳本上傳我的應用程序,並且想對其運行測試 - 但我無法運行測試測試來源,因爲我沒有它(沒有訪問GIT)。 打包測試的最佳方式是什麼(在jar文件中?UberJar?), 這樣做的最佳做法是什麼?

測試是Selenium測試,這需要一個瀏覽器。

在此先感謝。

+0

當您可以使用腳本上傳您的應用程序時;什麼阻止你上傳.git文件?並在稍後推動改變?那將是我在這裏的「最佳實踐」。你看 - 這是git的優點之一:它可以「離線」工作。 – GhostCat

回答

1

你在這裏談論什麼樣的測試?如果它們是單元測試,那麼它們應該由構建過程運行,無論是在開發環境還是構建服務器上。

如果是集成測試,然後他們可能需要一些設置類似於測試服務器,數據庫,文件等,這通常意味着部署集成測試模塊本身的地方,並運行它對你的核心項目。

在你的情況,這意味着你應該做你的集成測試構建一些額外的工作,這樣一包被創建,其中包括所有必要的設置和應用程序構件。

編輯:在前端測試的情況下,我仍然會將測試打包爲單獨的模塊,並將測試中的應用程序和硒套件部署到服務器,例如簡單的.zip文件。

我將部署通過SCP或其他一些直接傳輸文件的zip。 Nexus並不適合這種情況,並且測試工件會在您的存儲庫中佔據空間並令人困惑。

另一種解決方案是創建一個泊塢容器包含運行測試,只是部署該容器到服務器所需的所有東西。

+0

Docker容器似乎不是一個好主意,因爲每次測試更改時都需要創建一個新映像。我想我會採用創建.zip文件的方法。因此,如果我理解正確,建議我將所有測試壓縮(源代碼+ mvn pom),並從我的工件存儲庫(Nexus)中獲取此zip。 –

+0

不,我建議讓該構建爲您創建合適的測試工件。通常不包含源代碼,除非可能是解釋代碼。 –

+0

像這樣使用Docker實際上是預期的用法:在虛擬機中捆綁軟件和配置以實現無縫部署。 –