2012-01-06 130 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,測試方法被跳過。