JUnitDoc Plugin

JUnitDoc Pluginについて

JUnitDocはEclipseプラグインとして開発されています。 JUnitDocは、JUnitのテストコードにアノテーションなどでテスト仕様の情報を挿入し、それをもとにテストケース表を表示するビューを提供します。

JUnitでテストを実施していても、テスト仕様書はExcelで相変わらず作成し、テストコードとExcelを二重管理することになっている現場が多いのではないでしょうか。

JUnitDocではテスト仕様をテストコードに埋め込むことで、二重管理の負荷を減らそうとしています。

ロードマップ

  • 検討中の追加機能
    • GUI操作の高機能化
    • テストケースビューからHTMLorExcel、TestLinkのXMLエクスポート

動作環境

  • Eclipse 3.3.x/3.4
  • MacOSXでしか稼動確認していませんが、Windowsでも動作すると思います

インストール方法

以下の更新サイトからインストールが可能です。

また、以下よりプラグインファイルをダウンロードすることもできます。

機能一覧

  • デシジョンテーブルビュー
    • テストコードに記述されたアノテーションをもとにデシジョンテーブルを表示します
    • デシジョンテーブルについては以下を参照してください
  • テストケースビュー

使い方

デシジョンテーブルビュー

デシジョンテーブルの定義

例として、WikiPediaに記述されている以下のデシジョンテーブルで説明します。

テストケース1234
入力平日である××
午前10時から午後8時××
出力通常料金
割増料金
  1. Eclipseの『ウィンドウ』-『ビューの表示』-『その他』を選択し、JUnitDocのDecision Tableビューを選択して開きます。
  2. テストクラスを作成します。
  3. テストクラスの中にデシジョンテーブルをアノテーションで定義します。
  • デシジョンテーブル名をアノテーションとして宣言します。名前は、テスト対象のメソッド名などを付けます。例ではcalculateとしています。
  • @Documentedアノテーションを作成したアノテーションに付けます。
  • 作成したアノテーションの中に、Conditions、Actionsという名前でアノテーションを宣言します。
  • Conditionsの中に、デシジョンテーブルの入力をアノテーションで宣言していきます。
  • Actionsの中に、デシジョンテーブルの出力をアノテーションで宣言していきます。
    package sample;
    
    import org.junit.Test;
    
    public class Sample2Test {
    
    	@Documented
    	private @interface calculate {
    		public @interface Conditions {
    
    			@interface 平日である {
    			}
    
    			@interface 午前10時から午後8時 {
    			}
    		}
    
    		public @interface Actions {
    
    			@interface 通常料金 {
    			}
    
    			@interface 割増料金 {
    			}
    		}
    	}
    }
    

テストメソッドの作成

  1. テストメソッドを作成します。例ではテストパターンは4つありますので、4メソッド作成します。
  2. 作成したメソッドに、入力、出力のアノテーションを付けていきます。
    	@calculate
    	@calculate.Conditions.平日である
    	@calculate.Conditions.午前10時から午後8時
    	@calculate.Actions.通常料金
    	@Test
    	public void test1() {
    
    	}
    
    	@calculate
    	@calculate.Conditions.平日である
    	@calculate.Actions.割増料金
    	@Test
    	public void test2() {
    
    	}
    
    	@calculate
    	@calculate.Conditions.午前10時から午後8時
    	@calculate.Actions.割増料金
    	@Test
    	public void test3() {
    
    	}
    
    	@calculate
    	@calculate.Actions.割増料金
    	@Test
    	public void test4() {
    
    	}
    
  3. ここまで作成すると、Decision Tableビューに以下のように表示されます。decisiontable2.png

GUI操作のサポート

上記では手作業でデシジョンテーブルの定義を行っていましたが、GUIでもいくつかの操作が可能です。

  • 新規デシジョンテーブルの作成
  • 条件の追加
  • アクションの追加
  • 新規テストメソッドの作成

上記は、デシジョンテーブルビューのツールバーから実行できます。

  • デシジョンテーブルへテストメソッドの追加

JavaEditorのアウトラインビューから、メソッドをデシジョンテーブルビューにドラッグ&ドロップすることで、デシジョンテーブル内にメソッドの追加が可能です。

  • デシジョンテーブルのチェック欄の切り替え

デシジョンテーブルのチェック欄(Yと出力されているエリア)をマウスでダブルクリックすることで、チェックの有無を切り替えることが可能です。Yとした場合は、自動的にテストメソッドに対応するアノテーションが付与されます。

  • ジャンプ

デシジョンテーブルのカラム、またはチェック欄をクリックすると、対応するテストメソッドにジャンプします。
デシジョンテーブルの条件、またはアクションをクリックすると、対応するアノテーションの宣言箇所にジャンプします。

HTML出力

  • デシジョンテーブルをHTMLに出力することもできます。
  • デシジョンテーブルビューのツールバーから実行できます。

exportHtml.png

  • また、パッケージエクスプローラからフォルダを右クリックし、"JUnitDoc"-"デシジョンテーブルの出力"を選択することで、一括出力することもできます。

テストケースビュー

テストケース表の定義

テストメソッドのJavaDocに以下のようにテストケース情報を定義します。

	/**
	 * @tltestsuite テストスイート名
	 * @tltestcase テストケース名
	 * @tlsummary テストの概要
	 * @tlsteps テスト手順
	 * @tlexpectedresults 期待される結果
	 * @tlkeyword キーワード
	 * @tlnotes キーワードの説明
	 */
	@Test
	public void test1() {

	}

	/**
	 * @tltestsuite テストスイート名
	 * @tltestcase テストケース名2
	 * @tlsummary テストの概要2
	 * @tlsteps テスト手順2
	 * @tlexpectedresults 期待される結果2
	 * @tlkeyword キーワード2
	 * @tlnotes キーワードの説明2
	 */
	@Test
	public void test2() {

	}

	/**
	 * @tltestsuite テストスイート名2
	 * @tltestcase テストケース名
	 * @tlsummary テストの概要
	 * @tlsteps テスト手順
	 * @tlexpectedresults 期待される結果
	 * @tlkeyword キーワード
	 * @tlnotes キーワードの説明
	 */
	@Test
	public void test3() {

	}

  • テストケースビューに以下のように表示されます。testcasetable1.png

設定

Eclipseの設定画面から、以下の設定が可能です。

テンプレート

デシジョンテーブルのHTML出力のテンプレートをカスタマイズすることができます。テンプレートの書式はVelocityとなっています。
preferences_template.png

外観

以下の外観が設定可能です。
preferences_appearance.png

デシジョンテーブル
  • チェック表記
    • デシジョンテーブルビューに表示される、チェックの表記です。デフォルトでは「Y」となっています。
  • 非チェック表記
    • デシジョンテーブルビューに表示される、非チェックの表記です。デフォルトでは空白となっています。
  • 条件の表記
    • デシジョンテーブルビューに表示される、条件の表記です。デフォルトでは「条件」です。
  • アクションの表記
    • デシジョンテーブルビューに表示される、アクションの表記です。デフォルトでは「アクション」です。