2011-08-05 4 views
0

JUnitを初めて使用しています。JUnitでTestname/Testのステータスを取得する方法

classname/function name/status/descriptionのような出力を得る方法を取り組んでいます。

ルールを使用してFrameworkMethod以外の成功テスト名を取得する方法は他にありません。事前に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

スイートレーブルのルールを設定したい場合はどうすればいいですか?まだ実装されていませんか? – 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を追加することです。

関連する問題