一、现象
@BeforeClass和@AfterClass注解的方法不执行。
二、原因
1、@BeforeClass和@AfterClass是JUnit4的特性,标记有@BeforeClass的方法会载所有的测试方法执行开始前运行,标记有@AfterClass的方法会在所有的测试方法运行结束后执行。
但是在运行的时候,始终无法通过。仔细检查代码,原因是测试类继承了TestCase类。在JUnit4中,如果测试类继承了TestCase类,那么所有的Annotation都不会起作用。在程序中,所有的Annotation都不起作用了,但是testMethodA的命名符合TestCase中测试方法的规范,所以该方法还是会被执行,但是由于createTestData没有执行,测试数据没有被创建,方法执行当然会失败。
2、有可能是JUnit4和JUnit5 混合使用了,可以检查Maven的配置
三、解决方案
1、去掉extends TestCase
2、去掉JUnit5的依赖