Junit 5-以特定且一致的运行顺序,在@Suite中运行带有@IncludeTags的测试

gkl3eglg  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(115)

我试图找到一种方法来控制在包含一个或多个@标记的套件中执行测试的顺序
示例:

@Suite
@SelectPackages("com.tests")
@IncludeTags({
        "Tag1",
        "Tag2",
})
public class TestSuite { }

@Tag("Tag1")
public class RunThisFirst  { }

@Tag("Tag2")
public class RunThisLast  { }

这个顺序看起来有点随机,我真的想指定,至少,在套件完成之前,在所有其他测试之后最后运行一个测试。

wd2eg0qa

wd2eg0qa1#

您可能希望使用Junit5中的Class Ordering机制(大约从5.8版本开始提供)。根据您的需要,您可能希望使用简单的@Order注解,并简单地用表示其排序顺序的数值来注解每个测试类。
要在跨越多个类的@Suite级别上应用此方法,可以使用如下代码:
第一个
未nanotated的类被排在最后,这可能是不希望的,因为它迫使你手动注解每一个类。然后你可以自由地使用ClassOrderer提供的任何其他实现,甚至创建你自己的实现。
第一个

相关问题