2012-09-25 56 views
1

我試圖使用Junit4我使用下面的clases在junit4沒有發現測試

public class Example extends TestCase { 

    public Example(String name) { 
     super(name); 
    } 
    @Test 
    public void exampletest() { 
     //TO DO 
    } 
} 

@RunWith(Suite.class) 
@SuiteClasses({ Example.class }) 
public class Tests { 
    TestSuite tests = new TestSuite(); 
     tests.addTest(new Example("exampletest")); 
} 

它給了我無以junit4例外試驗發現有一個人能告訴我,爲什麼我得到這個例外 或者給一個例如如何做到這一點?

回答

2

在JUnit4中,您不會讓測試用例延伸到TestCase。但是如果你這樣做,那麼你的註釋將被忽略,並且你必須在測試上加上測試方法名稱。 試試這個代碼:

Example.java:

import org.junit.Test; 
public class Example { 
    @Test 
    public void exampletest() { 
     //TO DO 
    } 
} 

Tests.java:

@RunWith(Suite.class) 
@SuiteClasses({ Example.class }) 
public class Tests { 
} 
+0

我的意思是,我需要訂購的測試案例,所以我使用的TestSuite測試=新的TestSuite() ; tests.addTest(new example(「exampletest」));你能提出一些建議嗎? – Ramesh

+0

按設計,JUnit不允許推測測試執行的順序。 TestCases應該是獨立的。當你正在寫新的測試時,這還不夠公平。當你不得不使用傳統測試時的另一個故事。看看這個:http://junit.sourceforge.net/javadoc/org/junit/runner/manipulation/Sorter.html – Alban

+0

你可能需要編寫自己的Runner來實現你想要的。您可以派生* Suite * runner,並使用Request.sortWith命令執行測試用例。 – Alban