我正在寻找一种解决方案,以便在CQ5中进行集成测试后进行清理。经过一段时间的研究后,我们确实设法在CQ5中运行了JUnit测试(这是一个糟糕的文档)。例如,我们为测试目的而创建的测试用户或测试页面,我们不希望在之后的系统中出现这种情况。在crx中有没有解决方案可以做这样的事情?但所有这些解决方案都非常耗时,因为我们有许多服务器要部署,时间是宝贵的:)
发布于 2012-06-21 15:48:27
关于测试文档不完善的问题,我最近写了一篇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混入到所有测试内容节点,以便能够在前面找到它们。但是在这种情况下,CQ5本身在测试期间创建的内容(例如工作流实例)不会被删除。
https://stackoverflow.com/questions/11120266
复制相似问题