0
我通過組件構建一個複雜的服務器(Tomcat)的結構,含庫,部署,數據源設置...如何測試maven程序集的目錄是否正確?
我想部署確保一切都在那裏之前測試DIR/ZIP的內容,在正確的位置並使用正確的過濾屬性。
如何應用(單元)測試來分析目錄並斷言某些文件存在並且具有正確的內容?
我通過組件構建一個複雜的服務器(Tomcat)的結構,含庫,部署,數據源設置...如何測試maven程序集的目錄是否正確?
我想部署確保一切都在那裏之前測試DIR/ZIP的內容,在正確的位置並使用正確的過濾屬性。
如何應用(單元)測試來分析目錄並斷言某些文件存在並且具有正確的內容?
我會建議創建一個集成測試,在軟件包階段後運行。這可以通過maven-failsafe-plugin來處理,其可以綁定到integration-test
階段。您當然需要遵循maven-failsafe插件的命名約定。
要訪問生成的文件,您可以使用爲maven-failsafe-plugin配置提供的系統屬性。像:
<systemPropertyVariables>
<fileName>${project.build.finalName}</fileName>
<folder>${project.build.outputDirectory}</folder>
</systemPropertyVariables>
如果您使用單獨的模塊創建這些分發工件,這將給出生成的工件的整個文件名。我不是100%確定在裝配描述符文件中基於創建的分類器。
folder
將爲您提供工件的創建位置。
您可能還喜歡以下plugin。
編寫一個集成測試,它綁定到'integration-test'並檢查在包階段創建的創建的zip的內容? (這不是一個單元測試它是一個集成測試)...最好是使用[maven-failsafe-plugin](https://maven.apache.org/surefire/maven-failsafe-plugin/) – khmarbaise
謝謝你指着我在正確的方向。當集成測試運行後,這將解決我的問題。我很樂意給你業力,所以也許只是提供一個我可以接受的答案?如果您還想給我一個提示,我可以在AssemblyIT中訪問目標文件(它們的路徑中包含project.version),那麼這將是完美的。 –
爲什麼需要將庫添加到Tomcat?爲什麼不把它們與你的戰爭文件交付?你是否需要爲不同的環境創建,如dev,test,qa,prod? – khmarbaise