2013-03-28 95 views
2

我有一個包含許多模型的XML文件。 我正在解析測試套件中的這個XML文件並閱讀每個模型。 對於每個模型,我想要執行特定的測試用例列表。Junit4測試套件 - 循環並從測試套件中動態添加測試用例

這意味着,在測試套件的FOR循環中,我必須動態添加測試用例。


public static TestSuite suite() { 
TestSuite suite = new TestSuite(); 
for(condtion){ 
    if(model1){ 
     suite.addTest(new JUnit4TestAdapter(TestCase1.class)); 
     suite.addTest(new JUnit4TestAdapter(TestCase2.class)); 
    } 
    elseif(model2){ 
     suite.addTest(new JUnit4TestAdapter(TestCase3.class)); 
     suite.addTest(new JUnit4TestAdapter(TestCase4.class)); 
    } 
    } 
return suite; 
} 

但在這種情況下,只有測試用例的XML最後一個模型運行。它不會動態地添加測試用例併爲所有模型運​​行它。

然後我試圖與

JUnitCore.runClasses(TestScoopixModelLoader.class);

在for循環中。在這種情況下,測試用例是動態運行的。 但是我沒有在日食中看到這種視覺效果(例如成功的綠色棒,失敗的紅色棒)。這種視覺效果不適用於Junit TEST亞軍

如果任何人遇到這種問題,請給我一個解決方案。

回答

0

添加您自己的監聽器,讓它打印結果(在文本文件,系統輸出等)

JUnitCore jCore = new JUnitCore(); 
jCore.addListener(new CustomListener()) 
JUnitCore.runClasses(TestScoopixModelLoader.class); 


public class CustomListener extends RunListener { 
    public void testFailure(Failure failure) { 
     System.out.println(failure); 
    } 

// Rest of the listener methods 

} 

監聽器API: http://junit.sourceforge.net/javadoc/org/junit/runner/notification/RunListener.html