2012-08-27 114 views
4

我想建立一個集成測試的基礎架構。 目前我們使用maven引導tomcat,然後執行httpunit測試。 但目前的解決方案有幾個缺點。Arquillian和Arquillian Spring Framework Extension的集成測試

  1. 提交到數據庫的任何修改都需要在年底手動回滾如果測試
  2. 在集成測試運行的代碼覆蓋率是不是直線前進(我們使用的聲納)。

我的目標是:

  1. 允許測試(希望使用字符串@Transaction和@Rollback)
  2. 簡單直接的代碼覆蓋率
  3. 使用@RunWith將引導之間自動回滾來自JUnit而不是外部的系統
  4. 與活動servlet和javascript進行交互(我認爲從httpuinit切換到硒...)
  5. 合理的執行時間(至少比現有的執行時間不再)

的目標看上面的合理的,我和常見的許多Java/J2EE項目。 我想通過使用Arquillian和Arquillian Spring Framework Extension組件來實現這些目標。 又見https://github.com/arquillian/arquillian-showcase/

  1. 沒有人有與的Arquillian經驗和Arquillian Spring Framework Extension
  2. 你能分享問題最佳實踐和經驗教訓嗎?
  3. 任何人都可以提出一個替代方法以上?

回答

0

我不能完全回答你的問題。只有一些提示

  1. 關於自動回滾。就我而言。使用liquibase在「hsqldb」或「h2」上初始化可以設置爲內存模式的測試數據。那麼不需要回滾。

  2. 適用於Arquillian。這是一個很好的真正的測試方法。我學到的是「Arauillian Spring Framework Extension」只是一個擴展。您必須綁定到特定容器,如「jboss,glasshfish,tomcat」才能進行測試。 但我不知道如何申請一個不需要應用程序服務器支持的基於spring的javaSE程序。

我的經驗教訓是jboss端口衝突。因爲jboss-dist被設置爲默認http端口8080。但是我們公司的代理和8080一樣。所以我不能使用maven來獲取jboss-dist神器。

希望別人能給更多的信息。

+0

你應該可以通過build-helper-maven-plugin:reserve-network-port來保留一個開放的端口。看看http://docs.spring。IO /彈簧引導/文檔/電流-SNAPSHOT /行家-插件/示例/ IT-隨機port.html – dardo