2013-12-13 72 views
0

我想找出一種方法來針對內存數據庫(H2)和其他人對我們的Oracle測試數據庫執行某些集成測試。也許是我有限的測試寫作經驗,但似乎有些測試(如搜索查詢)更適合在內存中,因爲我可以控制查詢的數據集,而其他人(如測試事務/持久性)將受益於違揹我們的REAL模式和DB(Oracle)。Grails集成測試 - 如何針對不同的測試使用不同的數據源

我能想到的方法2,但不知道如何實現兩種:

  1. 添加一個新的測試階段,這樣我可以有集成測試,在-MEM和集成測試(使用Oracle)並在不同階段運行不同的測試和配置分別用於不同的DB
  2. 具有數據源用於

我寧願至上爲清潔每個測試控制和我沒有污染我的測試用邏輯來控制它使用的數據源。另外,第二個不是簡單地按域設置不同的數據源 - 我想在不同的測試中針對不同的DB重用相同的域。

任何想法讚賞,如果你已經這樣做,請分享!我們使用SPOCK。

回答

0

這是blog article我發現在Luke Daley添加自定義測試階段/類型。有沒有人執行過這個?現在我已經閱讀並理解了術語,我認爲我想要做的是設置新的類型 - 而不是階段。不幸的是,雖然我們正在使用spock,但我們已經基本上使用了自定義類型。雖然我們可以將spock作爲2種類型之一,並可能創建'SPOCK-IN-MEM'類型,但這可能需要重新定義可能無法使用的spock類型。歡迎任何建議。我想說這似乎經常出現(我已經在其他論壇上提出過這個問題),應該有一個更簡單的方法來解決這個問題。

0

還有一個發現。 spock有一個環境plugin,它增加了一個註釋,讓測試僅對註釋的環境運行。它重用spock的忽略測試功能,並且非常小巧,簡單,乾淨。唯一的缺點是它對於我們團隊來說不是問題。

定義階段的一個更簡單的方法將是很好的 - 就像一個命名約定。能夠僅使用目錄命名約定(如測試)來定義階段/類型將會很好。只需創建文件夾,然後離開。然後,您可以通過在運行test-app時明確設置args中的phase/type/env來控制執行。

相關問題