gpt4 book ai didi

java - 按指定顺序运行 JUnit4 测试类

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:08:39 24 4
gpt4 key购买 nike

我已经编写了许多测试,不仅分为单独的类,而且根据他们正在测试的应用程序的哪个区域,分为单独的子包。所以,我的包结构看起来有点像这样:

my.package.tests
my.package.tests.four
my.package.tests.one
my.package.tests.three
my.package.tests.two

my.package.tests 包中,我有一个父类,它扩展了子包一到四中的所有测试。现在,我想选择测试运行的顺序;不是在类中(这似乎可以用 FixMethodOrder annotation ),而是类或子包本身的顺序(所以子包 one 中的那些首先,然后是 两个等)。一些测试类使用 Parameterized runner ,以防万一。测试成功不需要选择顺序,它们彼此独立;然而,对它们进行排序以反射(reflect)程序各个部分通常使用的顺序会很有帮助,因为这会使分析更容易一些。

现在,理想情况下,我想要一些配置文件来告诉 JUnit 测试的执行顺序;不过我猜这不会那么容易。我在这里有哪些选择,什么是最简单的?我还希望只列出子包,而不是包中的各种类,甚至类中的测试函数。

我正在使用 Java 1.6.0_26(我在这里没有选择)和 JUnit 4.11。

最佳答案

您可以使用测试套件来做到这一点。 (你也可以“嵌套”这些)

@SuiteClasses({SuiteOne.class, SuiteTwo.class})
@RunWith(Suite.class)
public class TopLevelSuite {}

@SuiteClasses({Test1.class, Test2.class})
@RunWith(Suite.class)
public class SuiteOne {}


@SuiteClasses({Test4.class, Test3.class})
@RunWith(Suite.class)
public class SuiteTwo {}

……等等。使用“toplevelsuite”作为入口点,测试将按照您定义 @SuiteClasses 数组的顺序执行。

至于类中的方法,您可以使用 @FixMethodOrder 指定它们的执行顺序(正如您在问题中已经提到的那样。

关于java - 按指定顺序运行 JUnit4 测试类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19177195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com