2012-09-03 49 views
0

我試圖運行一個包含很多單元測試(一個接一個,而不是一個類)使用反射, 因此,當我得到所有需要的@Test方法跑我嘗試做運行@Test使用反射一個接一個

Result result = new JUnitCore().run(Request.method(Class 
           .forName(packageAndClass),getTestName())); 

但packageAndClass返回的類具有 @Before,@BeforeClass方法運行代碼時,上面我得到的所有測試(也可能是其超)

所以運行和失敗(因爲它們的一些值是在@Before和@BeforeClass方法中分配的) 但是當r從日食中選擇它(選擇測試方法名稱 - >右鍵單擊 - >運行爲 - > Junit測試) 它們全部通過(一起運行或一個接一個地運行) 是否有運行之前方法的請求api?

回答

3

你爲什麼這樣做? JUnit應該爲你運行測試!

+0

+1重塑全球社區使用的東西毫無意義。 –

+0

我寫了一個工具,使用junitCore(junit api) 我無法從eclipse運行它,因爲該工具是GUIless –

0

我跑了與JUnit 4.9以下測試:

public class RunOneTest { 
    public static void main(final String[] args) { 
     final Result result = new JUnitCore().run(Request.method(RunOneTest.class, "oneTest")); 
     System.out.println("result " + result.wasSuccessful()); 
    } 

    @Test 
    public void oneTest() throws Exception { 
     System.out.println("oneTest"); 
    } 

    @Test 
    public void anotherTest() throws Exception { 
     System.out.println("anotherTest"); 
    } 

    @Before 
    public void before() { 
     System.out.println("before"); 
    } 

    @BeforeClass 
    public static void beforeClass() { 
     System.out.println("beforeClass"); 
    } 

    @After 
    public void after() { 
     System.out.println("after"); 
    } 

    @AfterClass 
    public static void afterClass() { 
     System.out.println("afterClass"); 
    } 
} 

輸出功率爲:

beforeClass 
before 
oneTest 
after 
afterClass 
result true 

你真的確定方法不跑?

+0

嗨,非常感謝您的努力!我確定因爲@before行動不在我的環境中運行。我會試着用4.9重現它。 –

+0

@Itaik歡迎您。如果你仍然有問題,你應該提供[sscce](http://sscce.org)。 – gontard

相關問題