2013-10-30 41 views
0

任何人都可以告訴我當你有多個@Test註解時,Junit中@Test註釋的評估順序是什麼? 我試着用下面的例子,但沒有找到任何特定的順序。你可以考慮下面的例子來解釋你的答案。Junit中的一個類中的多個@Test註釋的評估順序

package test_Cases; 

import org.junit.Test; 

public class First_test_case { 
    @Test 
public void apsTest(){ 
    System.out.println("THIS IS FIRST TEST CAES."); 
    //selenium code 
} 
@Test 
public void appletestTest(){ 
    System.out.println("THIS IS second TEST CAES."); 
    //selenium code 
} 
@Test 
public void aboutestTest(){ 
    System.out.println("THIS IS third TEST CAES."); 
    //selenium code 
} 

@Test 
public void dtestTest(){ 
    System.out.println("THIS IS fourth TEST CAES."); 
    //selenium code 
}@Test 
public void etestTest(){ 
    System.out.println("THIS IS fifth TEST CAES."); 
    //selenium code 
}@Test 
public void ftestTest(){ 
    System.out.println("THIS IS sixth TEST CAES."); 
    //selenium code 
} 


} 
+0

可能重複[如何在JUnit4中以特定順序運行測試方法?](http://stackoverflow.com/questions/3693626/how-to-run-test-methods-in-specific-order-in- junit4) –

+0

這不是在JUnit中實現的(因爲作者認爲你不應該依賴你的測試順序)。如果您絕對需要它,請使用第三方測試運行器或切換到另一個框架,如TestNG。 (編輯:我剛剛看到Junit 4.11提供了一個解決方案!查看鏈接問題的詳細信息)。 –

+0

@JoachimSauer是對的,「獨立」是良好測試的特性之一。你可以在這裏閱讀http://www.cavdar.net/2008/10/25/properties-of-good-tests-a-trip/其他人的描述 – Morfic

回答

5

使用@FixMethodOrder JUnit的註釋就可以達到JUnit測試的有序執行

注:我們需要使用JUnit 4.11或更高版本,以獲得該選項

示例代碼片段:

import org.junit.FixMethodOrder; 
import org.junit.Test; 
import org.junit.runners.MethodSorters; 

// Test execution order : ascending order of method names 
@FixMethodOrder(MethodSorters.NAME_ASCENDING) 
public class OrderedJUnitTest { 
    @Test 
    public void second() { 
     System.out.println("Inside second test"); 
    } 

    @Test 
    public void first() { 
     System.out.println("Inside first test"); 
    } 

    @Test 
    public void third() { 
     System.out.println("Inside third test"); 
    } 
} 

輸出:

內側第一測試
內部第二測試
裏面第三測試

類似地,我們可以使用@FixMethodOrder(MethodSorters.DEFAULT)@FixMethodOrder(MethodSorters.JVM)以及將下令測試執行。

訪問https://github.com/junit-team/junit/wiki/Test-execution-order以獲得更多關於此的信息。