2011-08-05 20 views
0

我是JUnit的新手。我正在努力獲得類似於我如何在JUnit中獲得Testname/Test狀態

類名/函數名稱/狀態/說明的輸出方式。

我想,除了FrameworkMethod使用Rule之外,沒有其他方法可以獲得成功的測試名稱。是否可以將規則設置爲在JUnitCore/textui.Thx幫助下運行的套件。

編輯: - 我試過用Junit 4.9b2 testwatchman,但執行套件不適合我。任何幫助,將不勝感激。


@RunWith(Suite.class) 
@SuiteClasses({testclass1.class, testclass2.class}) 
public class junitCheck { 
    private static String watchedLog; 

    @Rule 
    public MethodRule watchman= new TestWatchman() { 
      @Override 
      public void failed(Throwable e, FrameworkMethod method) { 
        watchedLog+= method.getName() + " " + e.getClass().getSimpleName() 
            + "\n"; 
      } 

      @Override 
      public void succeeded(FrameworkMethod method) { 
        watchedLog+= method.getName() + " " + "success!\n"; 
      } 
    }; 

} 

public class testclass1 { 

    @Test 
    public void add() 
    { 
     Assert.assertEquals(4,2+3); 
    } 
} 

public class testclass2 { 


    @Test 
    public void add1() 
    { 
     Assert.assertEquals(4,2+2); 
    } 
} 

回答

0

看一看的TestWatchman規則。

+0

如果我想設置一個suitelevel規則,那該怎麼辦?那還沒有實現ryt? – Appunu

+0

看起來類/套件級規則即將出現在JUnit 4.9中:http://blog.schauderhaft.de/2011/07/24/rules-in-junit-4-9-beta-3/ – pholser

0

它不適用於套件。所以唯一的方法是將一個org.junit.rules.TestWatcher添加到測試的公共超類。