【发布时间】:2009-08-25 23:52:27
【问题描述】:
我有一个使用 maven2 构建并针对代码运行一系列 JUnit 测试用例的项目。到目前为止,这一直运行良好,我现在有 2 个测试必须按特定顺序运行才能正常工作,比如说 TestA 和 Test(A 然后 B)。不幸的是,maven2 不明白这一点,所以我正在寻找一种方法来说服它需要按此顺序运行测试。
问题是我在 TestB 中设置了一些最终的静态字段,但我是从 TestA 执行此操作的,它本身使用这些字段,并且测试的成功执行取决于这些字段设置为它们的新值(绝对没有办法,否则我早就走这条路了)。因此,必须首先加载 TestA,并且在尝试访问它时当然会导致加载 TestB。但是,maven2 已经决定先运行 TestB 然后运行 TestA,这意味着这些最终字段已经设置并且无法更改。
所以我正在寻找的是一种方法来指定测试执行的顺序(A 然后 B,每次),或者是一种容易使 TestB 被 JUnit 使用的任何类加载器重新加载的方法。
EDIT - 另一个选项可能是像旧的 JUnit GUI 工具那样的选项,它会导致为每个测试重新加载所有类。我看了又看,没有在maven junit插件中找到这样的标志,如果存在这样的东西,那也可以。
【问题讨论】: