bla*_*dri 7 java junit unit-testing junit4 java-6
我已经编写了许多测试,不仅分为不同的类,而且根据我们正在测试的应用程序的哪个区域划分为单独的子包.所以,我的包结构看起来有点像这样:
my.package.tests
my.package.tests.four
my.package.tests.one
my.package.tests.three
my.package.tests.two
Run Code Online (Sandbox Code Playgroud)
在my.package.tests
包中我有一个父类,子包中的所有测试都是一到四个扩展.现在,我想选择运行测试的顺序; 不在类中(这似乎可以通过FixMethodOrder注释)但是类或子包本身的顺序(所以那些在子包中one
,然后在那些中two
,等等).一些测试类使用参数化运行器,以防万一有所不同.测试成功不需要选择顺序,它们是相互独立的; 然而,对它们进行排序以反映通常使用程序的各个部分的顺序是有帮助的,因为它使分析更容易一些.
现在,理想情况下我想要一些配置文件告诉JUnit应该执行哪些测试顺序; 不过我猜它不会那么容易.我在这里有哪些选项,最简单的选项是什么?我也更喜欢只需列出子包,而不是包中的各种类,甚至是类中的测试函数.
我正在使用Java 1.6.0_26(我在这里没有选择)和JUnit 4.11.
blg*_*lgt 14
您可以使用测试套件执行此操作.(你也可以"嵌套"这些)
@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 {}
Run Code Online (Sandbox Code Playgroud)
... 等等.使用"toplevelsuite"作为入口点,测试将按照您定义@SuiteClasses
数组的顺序执行.
对于类中的方法,您可以指定它们执行的顺序@FixMethodOrder
(正如您在问题中已经提到的那样).