测试AlfrescoJava服务
我正在寻找一种测试Alfresco repository Java服务的方法,而无需部署到Tomcat服务器 我的想法是从JUnit testclass启动Alfresco embedded,将我想要测试的类注入Alfresco Spring配置,并使用JUnit测试方法测试这些类 Alfresco示例应用程序“FirstFoundationClient”是实现上述功能的良好切入点,但当我尝试在MySQL模式下使用H2内存数据库启动示例时,它会输出以下错误:测试AlfrescoJava服务,java,junit,alfresco,Java,Junit,Alfresco,我正在寻找一种测试Alfresco repository Java服务的方法,而无需部署到Tomcat服务器 我的想法是从JUnit testclass启动Alfresco embedded,将我想要测试的类注入Alfresco Spring配置,并使用JUnit测试方法测试这些类 Alfresco示例应用程序“FirstFoundationClient”是实现上述功能的良好切入点,但当我尝试在MySQL模式下使用H2内存数据库启动示例时,它会输出以下错误: SqlMapException: T
SqlMapException: The <sqlMap> resource is missing: /alfresco/ibatis/#resource.dialect#/qname-insert-SQLMap.xml
有人能帮我吗
- 如何使用H2数据库运行FirstFoundationClient(来自Alfresco Enterprise SDK 3.4.0)
- 如何注入测试中的类,以便我可以从Spring应用程序上下文访问它们(就像在FirstFoundationClient示例中访问标准Alfresco服务一样)
编辑:新的
h2支持v1.2支持Alfresco4
编辑:h2支持
现在支持高达Alfresco 4.0.2您是否尝试查看了一些Alfresco单元测试,以了解它是如何完成的?(遵循Alfresco本身用于测试的模式可能更容易)不确定您指向的帖子是否说可以使用JUnit测试Alfresco。我想这是说你可以用h2sqldb来模拟Postgres。如果您想使用JUnit,您可能可以在jetty服务器中启动Alfresco,这对于单元测试来说已经足够快了。或者至少是功能测试。Alfresco有大量的单元测试,所有这些都涉及在JUnit中启动部分/全部存储库,在单元测试中测试某些内容,然后关闭它。这些不需要tomcat或码头。您可能会发现最简单的解决方案是复制Alfresco单元测试如何为您工作case@MatthewFarwell关于JUnit和引用的文章,您是对的。但是JUnit应该不是问题。真正的问题是让Alfresco在不需要外部数据库的情况下运行嵌入式。Jetty可能是一种可以尝试的解决方案,但如果我必须将其部署到应用服务器上,则会导致对持续集成过程进行更复杂的配置(从而导致构建不稳定的风险)@Gagravarr您是否真的成功运行了Alfresco单元测试或您自己的类扩展了Alfresco测试基类?我已经搜索了关于如何设置我的环境(例如Eclipse)以使其正常工作的文档,但没有找到好运气。当我尝试为其TestClass扩展Alfresco使用的类时,它在初始化过程中失败(例如Hibernate异常),当我搜索问题时,我没有得到任何结果。我可以看到您正在使用H2-这给了我一点希望,它实际上可以与Alfresco SDK 3.4一起工作。我看不出你真的从测试中获得了对Alfresco服务或你自己的服务的引用。我对Clojure知之甚少,但似乎你没有真正测试任何东西?如果我在FirstFoundationClient中使用你示例中的Alfresco配置,它将输出与我在问题中列出的相同的异常(SqlMapException)。谢谢Carlo,你让我开心了!我只需要调整一下SQL脚本:在我的alfresco安装中,从alfresco/WEB-INF/classes/alfresco/dbscripts/create/org.hibernate.dialent.PostgreSqlDialent
获取实际的SQL脚本,这或多或少是我自己为常规版本的h2支持所做的。我很好奇Alfresco的哪个版本要求您这样做,您是否有机会在github项目中提供反馈?
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