这可能使用JUnit吗?

时间:2012-01-06 05:18:32

标签: java junit

我的每个Junit测试用例都有多个场景,并且必须运行ETL过程(需要20分钟)以在每个场景之间进行验证。假设我有一个包含4个Junit测试的类,格式为:

  • 首次测试 - 一个场景
  • 第二次测试 - 两种情景
  • 第三次测试 - 三种情景
  • 第四次测试 - 四种情景

是否可以在所有测试方法上单独运行第一个场景,将会话保持在某个位置然后返回到类以运行第二个场景(如果可用)等等。我想知道使用Junit是否可行。我在几个地方搜索过,但我没有找到任何运气。

3 个答案:

答案 0 :(得分:0)

没有。 JUnit FAQ说:“不保证测试方法调用的顺序......”另请参阅How to run test methods in spec order in JUnit4?

我理解的另一个障碍是JUnit为中的每个方法实例化一个新的测试类实例。 (Here is the explanation why)您的每个场景都将在测试类的不同实例中运行。

你的问题不是很清楚;也许如果你提供了更多关于你想做什么的细节,你会得到一些建议。

答案 1 :(得分:0)

如果您正在使用数据库,那么您可以拥有四个数据库吗?

JUnit中没有任何特定的保存/恢复会话,但是,您可以查看categories仅在CI服务器上运行特定测试。

答案 2 :(得分:0)

如果在运行时您可以判断某个场景是否适用/可用,您可以使用条件(重新)运行次数与场景一样多次:

@Before
public void seeIfScenarioIsApplicable() {

   org.junit.Assume.assumeTrue( isScenarioIsApplicable( ... ) );       
}

@Test 
first (){ // do magic }

@Test 
second (){ // do magic }

@Test 
third (){ // do magic }

@Test 
fourth (){ // do magic }

如果“isScenarioIsApplicable”返回false,则跳过测试方法。