2014-09-03 73 views
0

我正在開發一個項目,其中我嘗試使用Arquillian進行集成測試。我們的項目使用Spring 4,Hibernate,我們正在嘗試將它與Arquillian集成。 我無法找到合適的示例項目來解釋在此鏈接中使用Arquillium Spring Extension https://github.com/arquillian/arquillian-showcase/tree/master/spring 大多數示例都涉及通過創建JAR來測試業務邏輯。 在這個鏈接https://github.com/arquillian/arquillian-extension-spring我發現如何使用Arquillian Spring Extension來測試web應用程序,但沒有一個例子。Wildfly Spring Arquillian - WAR正在部署和取消部署,沒有任何例外

所以這就是我想要做的。 我爲該項目生成了網絡歸檔,它在Wildfly上成功部署,沒有任何問題或錯誤,我們可以訪問我們的網頁。

我們爲項目添加了arquillian配置,最初我們只是打算注入實體管理器並執行DAO訪問層的測試。但是我們認爲我們有完全可部署的WAR,所以讓我們爲整個測試安裝arquillian,而不僅僅是DAO層。因此我們決定配置相同。

現在我不是再次創建整個WAR,而是使用現有配置文件中沒有更改的配置文件。 (我知道persistence-ds應該被改變並相應地使用,但是可以在以後使用maven完成)。因此,目前我所有的配置文件(applicationContext,beans.xml,hibernate.xml,web.xml,mappings.xml等)都與DEV env中使用的相同。

是否有人可以幫助我在這裏,而且目前正處於測試案例U將不會看到太多的測試邏輯,對於暫時​​我只是試圖注入實體管理器和DAO層

下一個選項,我可以嘗試的, 不直接使用戰爭,而是使用ShrinkWrap創建一個通過添加包和依賴關係等等......我不知道這是否真的有必要。 其他選項,我可以從視圖中分離出邏輯代碼並創建一個JAR,然後使用@SpringConfiguration,並查看它是否有效。 或者刪除Spring Extension並使用普通的CDI,看看它是否可行,但是當它來到Spring MVC測試時,我可能不得不解決這個問題。

+0

2. pom.xml的 https://gist.github.com/shrikanthavale/8cd19f2a6c3be8cc44be 3.測試案例 https://gist.github.com/shrikanthavale/b72e8c8348354db4d0c3 – 2014-09-03 14:57:26

+0

1 。錯誤,(Maven -X),WebArchive結構的sysout - https://gist.github.com/shrikanthavale/ad4cc4015c53c98b64a2配置文件 - Web.xml,ApplicationContext.xml,hibernate,xml,beans.xml,faces-config ,mvc-dispatcherservlet,mappings.xml https://gist.github.com/shrikanthavale/273890d1cf844f28adc9 – 2014-09-03 14:58:38

+0

我能夠解決Ar的問題quillianServletRunner,通過從2.5修改web.xml爲3.0,不是部署和服務器日誌乾淨,但仍然沒有注入 – 2014-09-03 15:00:18

回答

0

因此,這裏是我面臨詳細的解答和問題,如果它可以幫助別人

首先,我用得到的Arquillian servlet運行沒有發現, 我意識到這個問題是在web.xml

從3.0的Servlet ,web.xml具有metadata-complete =「true」的特性,現在這個特性提高了服務器的啓動時間(在我的例子中是Wildfly),但是它在Arquillian中的作用是ArquillianServletRunner,這是servlet未被發現的。

而且我和WAR一樣用於開發,因此也是這個問題。

我所要做的只是創建一個帶有metadata-complete = false的重複web.xml,並將其放入src/test/resources中,並更新我的開發戰爭並將其用於arquillian。

現在第二個問題,這是我的一個錯誤,當我們使用Spring容器時,我們從服務器的standalone.xml中移除了Weld子系統。

但是當我添加焊接容器時,bean開始注入@Inject註解。

但我希望我的測試環境與開發環境完全相同,所以我添加了適當的arquillian彈簧依賴關係,並再次移除了焊接容器,並且它仍在工作。

所以這裏是我的更新pom.xml和arquillian.xml。

https://gist.github.com/shrikanthavale/ec96736e32df8b6985bb https://gist.github.com/shrikanthavale/8cd19f2a6c3be8cc44be