我有幾十個測試,所有測試都使用相同的配置和偵聽器。這意味着後續的行重複:我如何爲所有Spring測試使用默認配置和默認測試偵聽器?
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = WebDriverConfig.class)
@TestExecutionListeners(listeners = {ScreenshotTaker.class, DependencyInjectionTestExecutionListener.class})
我創建了以下內容:
public class WebDriverRunner extends SpringJUnit4ClassRunner {
public WebDriverRunner(Class<?> clazz) throws InitializationError {
super(clazz);
}
@Override
protected TestContextManager createTestContextManager(Class<?> clazz) {
return super.createTestContextManager(ConfigShim.class);
}
@ContextConfiguration(classes = WebDriverConfig.class)
@TestExecutionListeners(listeners = {ScreenshotTaker.class, DependencyInjectionTestExecutionListener.class})
public static class ConfigShim {
}
}
這意味着我可以如下運行測試:
@RunWith(WebDriverRunner.class)
public class ShoppingCartPageIT {
但是,這改變了測試的名稱。
請不要**延長'SpringJUnit4ClassRunner'。 JUnit跑步者正在成爲過去的事物,並可能在JUnit 5和Spring Framework 5中不受支持。 –
相反,更好的選擇是創建一個自定義的_composed註釋_,如@jny的答案中所述。 –
神奇山姆。它在書中:)在我可以閱讀的任何地方有沒有JUnit 5路線圖? –