1

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

4

1 回答 1

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集成测试示例中一样。

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

于 2012-06-21T07:48:27.193 回答