为测试类执行 Java 提供顺序

问题描述

我有三个测试类来测试我的控制器、服务和 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