几周前,我开始创建一个小的JUnit Runner( Oleaster ),它允许您使用Jasmine方式在JUnit中编写单元测试。 我了解到,创建自定义JUnit Runners实际上非常简单。 在本文中,我想向您展示JUnit Runner在内部如何工作以及如何使用自定义Runner来修改JUnit的测试执行过程。
那么什么是JUnit Runner?
JUnit Runner是扩展JUnit抽象Runner类的类。 运行程序用于运行测试类。 可以使用@RunWith注释设置应该用于运行测试的Runner 。
@RunWith(MyTestRunner.class)
public class MyTestClass {
@Test
public void myTest() {
..
}
}
JUnit测试是使用JUnitCore类开始的。 可以通过从命令行运行它,也可以使用其各种run()方法之一来完成此操作(如果您按run test按钮,这就是您的IDE所做的事情)。
JUnitCore.runClasses(MyTestClass.class);
然后,JUnitCore使用反射为通过的测试类找到合适的Runner。 此处的一个步骤是在测试类上查找@RunWith批注。 如果未找到其他运行程序,则将使用默认运行程序(