2012-01-06 94 views
-1

我的每个Junit测试用例都有多个场景,每个场景之间都需要运行ETL过程(需要20分钟)才能进行验证。假设我有与格式4个JUnit测试类:这可能使用JUnit吗?

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

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

+0

什么是“ETL过程”? – Paul 2012-01-06 05:35:56

+0

我不清楚你要求什么,你想要执行所有四种场景的第一次测试,然后是三种场景的第二次测试,两次是第三次测试,一次是最后一次测试? – ninesided 2012-01-06 05:35:58

+0

@Paul - ETL代表“Extract,Transform,Load”,它是用于在系统之间迁移数据或接口的过程。 – ninesided 2012-01-06 05:37:25

回答

0

号的JUnit FAQ说,“测试方法调用的顺序是不能保证......”又见How to run test methods in spec order in JUnit4?

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

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

0

如果您使用的是数据库,您是否可以拥有四个数据库?

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

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,测试方法被跳过。