2011-11-21 58 views
1

我正在尋找一種測試Alfresco存儲庫Java服務的方法,無需部署到Tomcat服務器。測試Alfresco Java服務

我的想法是從JUnit測試類開始嵌入Alfresco,將我想測試的類注入到Alfresco Spring配置中,並使用JUnit測試方法測試類。

的露天示例應用程序「FirstFoundationClient」是獲取上述工作一個很好的切入點,但是當我嘗試啓動在MySQL-模式H2內存數據庫它輸出下面的錯誤示例:

SqlMapException: The <sqlMap> resource is missing: /alfresco/ibatis/#resource.dialect#/qname-insert-SQLMap.xml 

我alfresco-global.properties示例項目配置:

dir.root=./alf_data 
db.driver=org.h2.Driver 
db.url=jdbc:h2:alf_data/h2_data/alfresco;MODE=MySQL 
db.username=alfresco 
db.password=alfresco 

誰能幫我:

  • 如何獲得FirstFoundationClient(從露天企業SDK 3.4.0)使用H2數據庫運行

  • 如何注入被測類,所以我可以從Spring應用程序上下文訪問它們(如標準Alfresco的服務進行訪問在FirstFoundationClient樣品中)

+0

你有沒有試過看一些Alfresco單元測試,看看它是如何完成的? (可能更容易遵循Alfresco自己用於測試的模式) – Gagravarr

+0

不確定您指向的帖子是否說可以使用JUnit測試Alfresco。我認爲這是說你可以用h2sqldb來模擬Postgres。如果你想使用JUnit,你可以在碼頭服務器上啓動Alfresco,這對於單元測試來說足夠快。或者至少功能測試。 –

+0

Alfresco有大量的單元測試,所有這些都包括啓動JUnit內部的一些/全部存儲庫,在單元測試中測試某些東西,並關閉它。這些都不需要tomcat或jetty。你可能會發現你最簡單的解決方案是複製Alfresco單元測試如何爲你工作案例 – Gagravarr

回答

3

如果你願意給maven的方式一試,我發表了little tutorial有關如何使用H2與露天。這裏有一個project,我正在利用您可能用作模板的方法。

注:露天4.x版可能與H2兼容 - PostgreSQL的模式


編輯:新h2-support V1.2支持Alfresco4


編輯:h2-support現在最多可支持Alfresco 4.0.2

+0

我可以看到您正在使用H2 - 這給了我一點希望,它實際上可以與Alfresco SDK 3.4一起使用。我不能看到你實際上從你的測試中獲得了對Alfresco服務或你自己的服務的引用。我對Clojure知之甚少,但似乎你沒有真正測試過任何東西? – mrbang

+0

如果我使用FirstFoundationClient的示例中的Alfresco配置,它會輸出與我在問題中列出的異常(SqlMapException) – mrbang

+0

謝謝Carlo,您爲我做了一天!我只需要稍微調整SQL腳本:在我的Alfresco安裝中從「alfresco/WEB-INF/classes/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect」中取出實際的SQL腳本 – Bulat