2011-05-04 61 views
6

沒有關注JUnit源代碼本身(我的下一步)是否有一種簡單的方法來設置每個測試都使用的默認Runner,而無需在每次測試中設置@RunWith?我們有大量的單元測試,我希望能夠在整個板子上添加一些支持,而不必更改每個文件。全局設置JUnit運行器而不是@RunWith

理想情況下,我希望像這樣的東西:-Djunit.runner =「com.example.foo」。

+0

因此,我偷看了RunWith註釋處理的代碼,並沒有看到任何將它從其他地方拉出默認運行器的地方。 – 2011-05-05 13:29:51

回答

1

我不認爲這是可以全局定義的,但是如果你寫自己的主函數是一個選項,你可以通過代碼做類似的事情。您可以創建一個自定義的RunnerBuilder並將它與您的測試類一起傳遞給Suite

Class<?>[] testClasses = { TestFoo.class, TestBar.class, ... }; 
RunnerBuilder runnerBuilder = new RunnerBuilder() { 
    @Override 
    public Runner runnerForClass(Class<?> testClass) throws Throwable { 
     return new MyCustomRunner(testClass); 
    } 
}; 
new JUnitCore().run(new Suite(runnerBuilder, testClasses)); 

這不會與Eclipse中的UI測試運行器集成,但對於某些自動化測試場景,它可能是一個選項。

1

JUnit不支持全局設置運行程序。您可以將@RunWith隱藏在基類中,但這可能無助於您的情況。

相關問題