2011-04-19 151 views
1

我們目前正在開發分佈式Java EE應用程序,因此有一個獨立的測試和生產系統。Maven:遠程運行單元測試

編譯和綁定是通過Ant任務完成的。現在我們要將不同服務器的Jar-Files部署到測試服務器,並在那裏運行JUnit Integration/Function-Tests。如果他們成功了,那麼當前版本應該部署到實時服務器。

平原單元測試由Hudson執行。 這對Maven來說是否可行?有沒有可用的信息或最佳實踐?

回答

1

是的。哈德森有maven集成。採取這種戰利品wiki和這link

您可以爲您的作業設置單元測試用例閾值,以查看它是否不通過一定數量的測試用例。因爲部署插件不會被調用,並且應用程序不會被部署。

+0

我正在尋找一種自動化功能測試框架,即從SCM檢驗,編譯代碼,將瓶子複製到不同的測試服務器,運行單元和功能測試並將它們複製到生產系統 – markus 2011-04-19 18:02:37

+1

這正是哈德森工作要做。 Maven構建會自動運行測試用例,只要您設置了它們即可。 – CoolBeans 2011-04-19 18:04:50

0
  1. 取一個從Ant構建的JAR並重用它。我會將Maven存儲庫添加到您的環境中,例如Artifactory,Archiva或Nexus,並將其部署到使用Ivy的環境中。您幾乎可以肯定需要使用Maven倉庫來滿足Maven除了小規模個人項目之外的其他任何需求。 http://ant.apache.org/ivy/

  2. 使用Maven從Maven倉庫獲取JAR。爲此,只需使用正常的Maven依賴聲明。

  3. 在QA服務器上運行Maven,並在該項目中聲明JUnit測試。如果成功,請將JAR部署到生產服務器。爲此,細節取決於生產服務器。如果它是一個WAR,我會用貨物,但如果是真的取決於什麼是執行JAR一個JAR - 你可能需要某種形式的文件副本,SCP等http://cargo.codehaus.org/

哈德森和TeamCity的都有部署功能。您只需設置一個要運行的作業(在本例中爲Maven作業)並告訴CI服務器部署成功。