我的集成測試順序運行,但我想並行化它們。問題是,它們都設置並拆卸了同一個數據庫行,所以如果它們並行運行,那麼當另一個測試清理完成時,它們的數據會在它們中間消失。在JUnit中,我如何獲得所有集成測試的列表?
我打算改變這種方式,以便每次測試都能設置好並且每次測試都將一個獨特的行撕下來,這樣它們就不會相互干擾。我已經開始了將每個測試的id變成同名的常量的過程,如ROW_ID
。但是我們有很多測試,而且很容易錯過其中的一個,而且我也不希望人們在將來增加重複的值,所以我認爲編寫測試可能是一個好主意爲我的測試。
下面是我想象它的工作方式:迭代所有IntegrationTest類,使用反射來獲取其ROW_ID
字段的值,將其放入數據結構中,然後檢查重複項。我的問題是我不知道如何迭代所有的IntegrationTest類。它們都具有「* IntegrationTest」的通用命名模式。有人可以幫助我完成這一步嗎?
如果還有更好的方法可以完成我想要做的事情,那麼請儘量將其作爲答案。
而不是手動提供行ID,爲什麼不使用數據庫序列呢? –
@MarlonBernardes這是一個好主意。也許我可以做到這一點。 –
或者可能創建一個線程安全的方法,它會增加並返回一個id計數器。就像'Long row_id = SequenceNumberGenerator.nextVal()' –