Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
测试AlfrescoJava服务_Java_Junit_Alfresco - Fatal编程技术网

测试AlfrescoJava服务

测试AlfrescoJava服务,java,junit,alfresco,Java,Junit,Alfresco,我正在寻找一种测试Alfresco repository Java服务的方法,而无需部署到Tomcat服务器 我的想法是从JUnit testclass启动Alfresco embedded,将我想要测试的类注入Alfresco Spring配置,并使用JUnit测试方法测试这些类 Alfresco示例应用程序“FirstFoundationClient”是实现上述功能的良好切入点,但当我尝试在MySQL模式下使用H2内存数据库启动示例时,它会输出以下错误: SqlMapException: T

我正在寻找一种测试Alfresco repository Java服务的方法,而无需部署到Tomcat服务器

我的想法是从JUnit testclass启动Alfresco embedded,将我想要测试的类注入Alfresco Spring配置,并使用JUnit测试方法测试这些类

Alfresco示例应用程序“FirstFoundationClient”是实现上述功能的良好切入点,但当我尝试在MySQL模式下使用H2内存数据库启动示例时,它会输出以下错误:

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服务一样)


如果你愿意尝试一下maven way,我发表了一篇关于如何在Alfresco中使用H2的文章。下面是一个例子,我正在利用这种方法,您可以将其用作模板

注意:Alfresco v4.x可能与H2-PostgreSQL模式不兼容


编辑:新的
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