【问题标题】:Testing Alfresco Java services测试 Alfresco Java 服务
【发布时间】:2011-11-21 10:06:32
【问题描述】:

我正在寻找一种无需部署到 Tomcat 服务器即可测试 Alfresco 存储库 Java 服务的方法。

我的想法是从 JUnit 测试类开始嵌入 Alfresco,将我想要测试的类注入到 Alfresco Spring 配置中,并使用 JUnit 测试方法测试这些类。

Alfresco 示例应用程序“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(来自 Alfresco Enterprise SDK 3.4.0)使用 H2 数据库运行

  • 如何注入被测类,以便我可以从 Spring 应用程序上下文访问它们(就像在 FirstFoundationClient 示例中访问标准 Alfresco 服务一样)

【问题讨论】:

  • 您是否尝试查看一些 Alfresco 单元测试,看看它是如何完成的? (遵循 Alfresco 本身用于测试的模式可能更容易)
  • 不确定您所指的帖子是否说可以使用 JUnit 测试 Alfresco。我认为这是说您可以使用 h2sqldb 模拟 Postgres。如果您想使用 JUnit,您可能可以在码头服务器中启动 Alfresco,这对于单元测试来说已经足够快了。或者至少是功能测试。
  • Alfresco 有大量的单元测试,所有这些都涉及在 JUnit 中启动部分/全部存储库,在单元测试中测试某些内容,然后关闭它。这些不需要tomcat或码头。您可能会发现最简单的解决方案是复制 Alfresco 单元测试如何为您工作
  • @MatthewFarwell 您对 JUnit 和引用的帖子是正确的。 JUnit 应该不是问题。真正的问题是让 Alfresco 运行嵌入式而不需要外部数据库。 Jetty 可能值得尝试,但我必须部署到应用程序服务器的解决方案会导致持续集成过程的配置更加复杂(因此存在构建不稳定的风险)。
  • @Gagravarr 您是否真的拥有 Alfresco 单元测试或您自己的扩展 Alfresco 测试基类的类并成功运行?我已经搜索了有关如何设置我的环境(例如 Eclipse)以使其正常工作的文档,但没有运气。当我尝试扩展 Alfresco 用于他们的测试类的类时,它在初始化期间失败(例如 Hibernate 异常),当我用谷歌搜索问题时,我没有得到任何结果。

标签: java junit alfresco


【解决方案1】:

如果您愿意尝试 maven 方式,我发布了一个 little tutorial 关于如何在 Alfresco 中使用 H2。这是project,我正在利用您可能用作模板的方法。

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


编辑:新的h2-support v1.2 支持 Alfresco4


编辑:h2-support 现在支持 Alfresco 4.0.2

【讨论】:

  • 我可以看到您正在使用 H2 - 这让我有点希望它实际上可以与 Alfresco SDK 3.4 一起使用。我看不到您实际上从测试中获得了对 Alfresco 服务或您自己的服务的引用。我对 Clojure 知之甚少,但您似乎没有真正测试任何东西?
  • 如果我将您示例中的 Alfresco 配置与 FirstFoundationClient 一起使用,它会输出与我在问题 (SqlMapException) 中列出的相同异常
  • 谢谢卡洛,你让我开心!我只需要稍微调整一下 SQL 脚本:在我的 Alfresco 安装中从alfresco/WEB-INF/classes/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect 获取实际的 SQL 脚本
  • 这或多或少是我自己为常规版本的 h2 支持所做的。我很好奇哪个版本的 Alfresco 要求你这样做,你有没有机会在 h2-support github 项目中提供反馈?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-31
  • 1970-01-01
  • 1970-01-01
  • 2017-07-14
  • 2016-04-02
  • 2013-07-11
  • 2017-06-20
相关资源
最近更新 更多