2009-04-21 21 views
23

javadocsを使用してjunitレポートに「説明文」を含める方法があるかどうかを確認しようとしています。 JUnit 4はTestNGのように@Testアノテーションの 'description'属性をサポートしていないようです。JUnitレポート - テスト方法の説明

私が調査したところでは、javadoc-junit(http://javadoc-junit.sourceforge.net/)というツールが1つしかありません。しかし、これはJunit 4と互換性がないと思われるため、これを動作させることができませんでした。

JUnitレポートで、各テストメソッドに文または2つのテキストを入力する方法があります。 JavaDocは、JavaDocとJunit Reportの間でドキュメントやテストの統計情報を参照する必要があるため、JavaDocは役に立ちません。

誰も私が最小限の労力で使用できる何かを知っていますか?

ベスト、 レイ・J

+1

良い質問。私はその解決策にも興味があります。 – martin

+0

5年後、同じ問題。 :) – mario

+0

Junit 5はカスタムテスト名をサポートします:http://junit.org/junit5/docs/current/user-guide/#custom-names – gontard

答えて

6

私は、JUnitテストでjavadocを入れないでください。私は通常、メソッドの名前を十分記述的にすることで、私が思いつくことができるコメントと同じくらい、またはそれより優れています。

-1

私は想像することができますが、Framework for Integrated Tests (FIT)は素晴らしく清潔な解決策になります。

FITとは何ですか?
FITは、Word文書、wikiテーブル、またはhtmlテーブルのテーブルを介してテストを記述するためのフレームワークです。
テーブル外のすべての文字はFITによって無視され、ドキュメント、説明、要件などを入力できます。

どのようにこれらの表のように見えるのですか?

入力パラメータを2乗する関数MyMath.square(int)を想像してください。あなたのMyMathと次の表の間のアダプタであること、いわゆるフィクスチャを構築する必要があります。

class.with.Fixture.Square 
x square() 
2 4 
5 25 

最初の列は入力値、第2の期待結果を記述しています。同じでない場合、このフィールドは赤色にマークされます。

フィクスチャーの外観はどうですか?与えられた例
、これは正しいフィクスチャのようになります。

package class.with.Fixture // Must be the same as in the fist row of the table 

public class Square extends Fixture { 
    public int x; // Must be the same as in the second row 
    public int square() { // Must be the same as in the second row 
     return MyMath.square(x); 
    } 
} 

おそらく、あなたはあなたの要件にFITを使用することができます。
詳細については、私の回答にコメントしたり質問を編集してください。

+0

あなたのtestMethodに説明的なメッセージを追加することにどのように回答したのでしょうか。 FITはこの機能を提供していますか? – hakish

+0

直接ではありませんが、Word文書で、適切な文書を作成できます。 – guerda

8

Allureという最近の解決策もあります。これは主にJavaベースのテスト実行レポートで、補足的な注釈をコードに追加することに基づいています。既存の注釈が含まれる:

  • カスタム説明:@description機能やストーリーによって( "クール試験")
  • グルーピング:@Features({ "特長1"、 "特長2"})ステップとしてテストケース内で実行メソッドをマーキング@Stories({ "story1"、 "story2"})
  • @Step(さえプライベートメソッドのために働く)
  • 添付:@At tachment(名前= "ページのスクリーンショット"、タイプ= "画像/ PNG")

が自分wikiexample project詳細を参照してください。

8

JUnit 5には、すべてのテストに@DisplayNameという注釈を付ける方法があります。宣言されたテストクラスは、text,special charactersおよびemojisを持つことができます。

各テストで宣言されたテキストは、test runnerstest reportsで表示されます。


Javadocは言う:

public @interface DisplayName

@DisplayNameは注釈付きテストクラスやテストメソッドのためのカスタム表示名を宣言するために使用されています。 表示名は、通常、IDEやビルドツールのテストレポートに使用され、スペース、特殊文字、さらには絵文字を含むことがあります。

そしてUser Guide

import org.junit.gen5.api.DisplayName; 
import org.junit.gen5.api.Test; 

@DisplayName("A special test case") 
class DisplayNameDemo { 

    @Test 
    @DisplayName("Custom test name containing spaces") 
    void testWithDisplayNameContainingSpaces() { 
    } 

    @Test 
    @DisplayName("╯°□°)╯") 
    void testWithDisplayNameContainingSpecialCharacters() { 
    } 

    @Test 
    @DisplayName("") 
    void testWithDisplayNameContainingEmoji() { 
    } 
} 
+0

Thanxしかし、JUnit 5は生産にはあまりにも新しくなっています。 – Akceptor

+1

@Akceptor Thatsは本当です。しかし、私は考えていた、質問は7歳です - 多分7年でこれは正解かもしれません:D – Patrick

+1

受賞。ちょうどJUnit 5が唯一の利用可能な解決策であるように思えるからです – Akceptor

関連する問題