2017-09-11 53 views
1

語境

目前與模塊化數據庫支持的應用程序框架的工作:數據存儲是通過常規的Postgres的薄層,和模塊/插件可依賴於一個另一個並執行相對任意的操作在所述數據庫包括添加列或改變其性質(例如使一個依賴的列NOT NULL),所以能夠使模塊由測試以模塊化/可插拔數據庫支持的應用程序框架

  1. 應用其DDL(新表,新列,新的約束,新的索引,對任何以前的現有版本的更改,...)
  2. 安裝任何「靜態」數據包含
  3. 可選運行其測試

問題

這導致測試是一個苦差事,目前系統已安裝模塊,然後運行它的測試然後才能進入下一個模塊,並且這基本上需要將系統重置爲0以便重新運行測試(因爲模塊K可能已經修改了數據庫模式,使得模塊J的測試不再運行) 。這是重量級的,煩人的,緩慢的,難以集成到現有的測試工具或元工具。

查詢

我已經從跳過模塊尋找到使這個少不方便,但除了(當前系統有沒有「模塊測試」,只有「模塊安裝」的概念,並在試圖測試一個模塊,它也將運行測試它的所有依賴)我沒有設法想出任何東西。

回答

0

只要你保持一個模式內的變化,它應該很容易(除非我沒有正確理解你的要求)。在每次測試之前,您應該重置數據庫。一個簡單的想法是再次放棄並創建模式。如果您需要將db重置爲某個預定義的狀態,請檢查postgres模板。如果你的工具應該允許完全自定義的數據庫操作,比如刪除用戶或模式,那麼你需要某種抽象層來跟蹤如何在所有這些更改(用戶,密碼,jdbc url)後連接到這個數據庫。

集成測試的大多數現有項目都不是用來測試模式更改,而是測試代碼如何與固定模式進行合作。

我不知道任何其他項目,提供所有你需要的,所以這將是一個無恥的營銷。最近我創建了一個集成測試工具testegration。這是一個商業產品,但有一個免費的階層。它也被設計來測試一個固定的模式,但它應該處理你的情況 - 只需重寫'重置'階段使用drop/create模式或使用postgres模板

相關問題