我目前有一些測試,它確實運行很長。在每次測試中,我總是一樣的:如何並行化JUnit測試?
有一個循環創建一個新的對象(每次迭代都有不同的參數),做一些耗時的對象計算,並且在每次迭代結束時將結果與預期結果。
此循環中的每次迭代都是完全隔離的。我可以很容易地並行運行所有這200個非常耗時的迭代。但如何最好地做到這一點?
乾杯, 洪堡
我目前有一些測試,它確實運行很長。在每次測試中,我總是一樣的:如何並行化JUnit測試?
有一個循環創建一個新的對象(每次迭代都有不同的參數),做一些耗時的對象計算,並且在每次迭代結束時將結果與預期結果。
此循環中的每次迭代都是完全隔離的。我可以很容易地並行運行所有這200個非常耗時的迭代。但如何最好地做到這一點?
乾杯, 洪堡
的Junit 4具有內置中並行處理。檢查這個documentation。
除此之外,您可能需要考慮將所有重複迭代移動到靜態設置方法中並註釋爲@BeforeClass。這將確保代碼在整個生命週期中只運行一次。
@BeforeClass
public static void setup() {
//Move anything needs to run only once.
}
您必須創建Parameterized runner的自己修改。見http://jankesterblog.blogspot.de/2011/10/junit4-running-parallel-junit-classes.html
謝謝!我有幾個問題: –
1.你的第一個鏈接說,「單個參數測試」允許返回Object []。在我的情況下,這總是會拋出一個錯誤:「必須返回一個數組的Iterable。」 如果我將這些參數封裝在一個常規數組中,它就可以工作。 –
您需要將JUnit 4.12用於「單參數測試」。我假設你正在使用4.11。 –
圖書館JUnit Toolbox提供了一個ParallelParameterized亞軍。
並行處理是Maven特性而不是JUnit特性。 –