问题描述
我有三个测试类来测试我的控制器、服务和 Kafka 消息传递。当我独立运行 Kafka 消息传递时,它可以工作。但是当我一起运行所有测试文件时,Kafka 测试类只要它是第一个被执行的就会通过,否则它会失败。
我想通过确保 Kafka 测试类始终是第一个执行来对测试类的执行进行排序。
我怎样才能做到这一点?使用测试套件?有没有其他办法?我的应用程序是使用 Micronaut、Java 8 构建的。
解决方法
尝试使用有助于测试执行顺序的@OrderWith 注释
None
以上代码将按照方法名称的字母数字顺序运行测试。
我们还可以使用@FixMethodOrder 注释来提及必须对方法进行排序和执行的顺序。目前有3种选择
-
MethodSorters.DEFAULT
-
MethodSorters.NAME_ASCENDING
-
MethodSorters.JVM
@FixMethodOrder(MethodSorters.NAME_ASCENDING) 公共类 TestMethodOrder { ..... }
参考文献:https://github.com/junit-team/junit4/wiki/Test-execution-order