我编写了许多测试,这些测试不仅分为单独的类,而且根据测试的应用程序区域,还分为单独的子包。所以,我的包结构看起来像这样:
my.package.tests
my.package.tests.four
my.package.tests.one
my.package.tests.three
my.package.tests.two
在my.package.tests
程序包中,我有一个父类,子程序包中的所有测试都通过一到四个进行扩展。现在,我想选择测试的运行顺序;不是在类内(这似乎可以通过FixMethodOrder批注实现),而是类或子包本身的顺序(因此,one
首先在子包中,然后在two
等等中)。一些测试类使用Parameterized Runner,以防万一。测试成功不需要选择顺序,因为它们彼此独立。但是,对它们进行排序以反映程序各部分通常的使用顺序将很有帮助,因为这会使分析变得容易一些。
现在,理想情况下,我想拥有一些配置文件,该文件告诉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
(如您在问题中已经提到的那样)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句