2012-06-20 40 views
1

我正在尋找解決方案,在CQ5中進行集成測試後進行清理。經過一段時間的研究後,我們確實在CQ5中運行JUnit測試(這是記錄不好的)。 現在一切正常,我們正在尋找一種解決方案,以便使用maven-deployment在CQ5服務器上運行這些測試,然後清理測試數據。就像我們爲了測試目的而創建的測試用戶或測試頁面,我們不希望在系統中擁有這些測試用戶或測試頁面。 有沒有解決方案構建在crx做類似的事情? 到目前爲止,我們還考慮過使用測試進行部署,之後再進行一次沒有測試的部署,或者在運行測試並重新安裝快照後立即進行快照部署。但所有這些解決方案都非常耗時,因爲我們有很多要部署到的服務器,時間是非常寶貴的:)回滾CQ5中的集成測試數據

回答

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自己在測試期間創建的內容(例如工作流實例)不會被刪除。

+0

謝謝你的回答! 作爲最後的希望,我們找到了這個:[link](http://www.infoq.com/articles/spring-modules-jcr)和這個:[link](http://se-jcr.sourceforge.net/項目info.html裏)。 我們希望通過交易簡單回滾測試數據將是可能的,我們希望最好,否則我認爲我們會用測試盒。 – Robin

+0

@Robin您是否找到了回滾測試數據的方法?如果可以,請將您的發現作爲答案添加進去? – Behrang