在CQ5中回滚集成测试数据

时间:2012-06-20 13:06:34

标签: unit-testing rollback cq5 crx

我正在寻找在CQ5中进行集成测试后清理的解决方案。经过一段时间的研究,我们确实在CQ5中运行JUnit测试(这是很糟糕的记录)。 现在一切正常,我们正在寻找一种解决方案,使用maven部署在CQ5服务器上运行这些测试,然后清理测试数据。例如,我们为测试目的创建的测试用户或测试页面,我们不希望以后在系统中使用。 是否有一个在crx中构建的解决方案来做类似的事情? 到目前为止,我们还考虑过使用测试进行部署,之后再进行测试,或者之后再进行快照部署,而不是运行测试并再次安装快照。但是所有这些解决方案都非常耗时,因为我们需要部署许多服务器,时间非常宝贵:)

1 个答案:

答案 0 :(得分:1)

关于测试记录错误,我最近编写了http://sling.apache.org/site/testing-sling-based-applications.html作为基于Sling的应用程序测试技术的概述。由于CQ5基于Sling,所有这些技术都适用于它。

为了清理你的测试内容,我认为CQ5.5或它使用的CRX版本不会提供快速的“在测试前拍摄快照并在它们之后恢复它”功能。

如果您可以在支持快照的文件系统(如ZFS)上运行,则可以在运行测试之前获取文件系统快照,启动CQ5,运行它们,停止CQ5并返回到该快照。

您还可以在仅用于测试的一次性实例上运行测试 - 设置CQ5实例很容易,并且在一个体面的测试盒上不应超过4-5分钟。我们使用Maven构建来实现这一点,从头开始设置一个实例,就像在Sling integration tests sample中一样。

除此之外,您还可以将所有测试内容放在/ content / test,/ var / test等特定路径下,以便在测试后将其删除。或者将my:toDelete mixin添加到所有测试内容节点,以便能够在之前找到它们。但是,在这种情况下,CQ5本身在测试期间创建的内容(例如工作流实例)不会被删除。