VfUnitとは、Webtribe/VisualFrameのリッチクライアント(RunClient)を
JFCUnit,JUnitを用いて 自動テスト を行うツールです。
JFCUnit付属XML実行モジュールとの差は、RunClientの特性を生かして XMLの記述を簡略化しています。
また、レポート出力についても詳しく出力できるようにしています。
FrameRunner(画面単体テスト用) からの起動を前提としたツールになっています。
このツールは 全てオープンソース にて提供しています。
不具合があった場合の修正、機能追加 などは各自作成、修正してご使用ください。
フリー提供のためMKIでの製品サポートの受付はできませんので、ご了承下さい。
VfUnitは今後もバージョンアップ予定です。
但し、旧バージョンとの互換性の保証は無い予定です。
VisualFrame もしくは Webtribe の Ver1.2.0_06 以上が必要です。
動作には 以下の外部ライブラリ使用しており、このパッケージ内 libフォルダ に格納しています。
Thanks for JUnit,JFCUnit,DBUnit!!
- docs | vfunitのJavaDoc |
- readme_images | このドキュメント内のイメージファイル,リンク先HTMLなど |
- sample | サンプル実装 |
ReadMe.html | このドキュメント |
VfUnit.properties | VfUnit実行の為のプロパティファイル。 |
src.zip | VfUnitのソースコード |
vfunit.dtd | XML記述テストケースのDTD |
vfunit-1.0.jar | VfUnitのJAR。実行時にクラスパスに設定が必要 |
vfunit_template.xml | XML記述テストケースのテンプレート(参考資料) |
このパッケージにはサンプルアプリが含まれています。
どのような事ができるのか? は とりあえず サンプルアプリを動作してみて下さい。
サンプル実行に当たっては、Webtribe/VisualFrame ver1.2.0_06 以上が必要です。
Webtribe製品をお使いの方は、 lib ディレクトリ に お手持ちの RunClient.jar, RunClientPatch.jar,
RuleCommonClient.jar, RuleCommonClientPatch.jar を上書きして下さい。
(製品版 Ver1.2.0_06以上の必要があります。)
実行にあたっては、Webtribe製品のランタイムライセンス と コントロールサーバの起動 が必要です。
sample/conf/common.wdg にて 起動しているコントロールサーバのパスを設定してください。
VisualFrame製品をお使いの方は、 lib に お手持ちの RunClient.jar, RunClientPatch.jar,
RuleCommonClient.jar, RuleCommonClientPatch.jar を上書きして下さい
(製品版 Ver1.2.0_06以上の必要があります)
sample/JUnitRun.bat sample/RunClient.bat のクラスパスに
ライセンスJAR(VisualFrameRuntimeLicense.jar)を追加し、 vfunit_sample.jar の記述を
vfunit_sample_vf.jar に変えてください。
JAVA_HOME の パスが通っていない場合には JUnitRun.bat に JAVA_HOMEの設定記述を追加してください。
このパッケージを日本語を含むディレクトリに配置すると XMLパースに失敗する場合があるため、英数字のディレクトリに
配置するようにしてください。
テスト実行は sample/JUnitRun.bat より行います。
実行は 約2分程 かかります。その間は マウス/キー は触らずに じっと画面を見ててください。。
このサンプルのテスト指定XMLは
sample/vfunit_sample.xml です。
テスト完了後には
sample/report/report.html に
テスト結果レポート
sample/report/process.html に
テスト操作手順書
が出力されます。(テストを無理やり中断すると出力されないかも)
テスト記述の方法としては2種類あります。
p.ne.mki.wedge.pub.vfunit.testcase.VfUnitTestCase を継承して
JUnitと同様に public void test****() throws Exception というメソッドを作成 してコードを記述します。
サンプルコードとして sample_src.zip/testcase.CommonCheck.java も参照してください。
※JUnit3 の形式で記述しています。今後、JUnit4の形式にて変更する可能性もあります。
Clickなどの操作 は
jp.ne.mki.wedge.pub.vfunit.tag.process パッケージ のクラスを使用します。
DataBaseの操作系 は
jp.ne.mki.wedge.pub.vfunit.tag.process.db パッケージ のクラスを使用します。
Assertチェック は
jp.ne.mki.wedge.pub.vfunit.tag.check パッケージ のクラスを使用します。
XMLの記述形式は vfunit.dtdを参照してください。
記述サンプルとしては vfunit_template.xml
を参照してください。
XMLは vfunit.dtd に沿って必ず記述してください。
XmlBuddy のツールを使うと、DTD指定により
入力補完機能や、エラー箇所が分りやすいので オススメです。
実行時に使用する XMLファイルパス や、レポート出力場所 などの情報を VfUnitに渡す必要があります。
渡す方法は、2種類あります。
java -DVfUnit.XML_FILE_PATH=sample/test.xml junit.textui.TestRunner ・・・
のように指定します。両方指定されていた場合には、Systemプロパティの設定 が優先されます。
XML_FILE_PATH | テストXMLのファイルパスを記述します。
resource: から始まる指定の場合は リソースから読込を行い、 http: から始まる指定の場合には URL先から読込を行います。 file: から もしくは 上記以外の場合には ファイルシステムから読込を行います。 ディレクトリ指定の場合は ディレクトリ内の全てのXMLファイルが対象になります。 例外として 「CVS」という名前のディレクトリは除外します。 デフォルトでは 設定はありません。 必ず設定を追加してください。 |
---|---|
MAIN_ARGS | アプリケーションに渡すJava引数を指定します。製品デフォルトでは 設定はありません。
|
IS_ERROR_STOP | Error発生した時にテストを中断するかどうかを指定します。
true もしくは false を指定してください。 デフォルトでは false になります。 |
VF_COMPONENT_FIND_NAME_TYPE | VF-Componentの名称の検索対象の指定です。
physical もしくは logical を指定してください。 physical の場合は 物理名で検索し、 logicalの場合は論理名で検索します。 デフォルトでは physical になります。 |
VF_ITEM_FIND_NAME_TYPE | VF-アイテムの名称の検索対象の指定です。
physical もしくは logical を指定してください。 physical の場合は 物理名で検索し、 logicalの場合は論理名で検索します。 デフォルトでは physical になります。 |
REPORT_IS_ENABLE | 結果レポートを出力するかどうかの指定です。
true もしくは falseを指定してください。 デフォルトでは true になります。 |
REPORT_DIRECTORY | 結果レポートを出力するかディレクトリパスの指定です。
デフォルトでは ./report/ になります。 |
REPORT_WRITER_CLASS | 結果レポートを出力するクラスです。
jp.ne.mki.wedge.pub.vfunit.reporter.IReportWriter インターフェースを実装した クラスを指定します。 デフォルトでは jp.ne.mki.wedge.pub.vfunit.reporter.ReportTestListener になります。 デフォルトの実装の jp.ne.mki.wedge.pub.vfunit.reporter.ReportTestListener では、 結果をXML形式にて report.xml という名前でファイル出力します。 |
REPORT_CONVERTER_CLASS | 結果レポートXMLをHTMLなどに変換するクラスの指定です。
現在提供している クラスは 以下になります。
デフォルトでは jp.ne.mki.wedge.pub.vfunit.reporter.HtmlConverter_Table になります。 |
DELIMIT_COMPONENT_START | 結果レポート出力時に コンポーネント名称記述 する時の 開始文字列の指定です。
DELIMIT_COMPONENT_START=「 DELIMIT_COMPONENT_END= 」 と指定されていた場合には、"「{コンポーネント名称}」をClickする" のようにレポート出力されます。 デフォルトでは 「 になります。 |
DELIMIT_COMPONENT_END | 結果レポート出力時に コンポーネント名称記述 する時の 終了文字列の指定です。
デフォルトでは 」 になります。 |
DELIMIT_ITEM_START | 結果レポート出力時に アイテム名称記述 する時の 開始文字列の指定です。
デフォルトでは 【 になります。 |
DELIMIT_ITEM_END | 結果レポート出力時に アイテム名称記述 する時の 終了文字列の指定です。
デフォルトでは 】 になります。 |
DELIMIT_ITEM_VALUE_START | 結果レポート出力時に アイテムの値を記述 する時の 開始文字列の指定です。
デフォルトでは [ になります。 |
DELIMIT_ITEM_VALUE_END | 結果レポート出力時に アイテムの値を記述 する時の 終了文字列の指定です。
デフォルトでは ] になります。 |
使用時に 必ず修正が必要なものは 『XML_FILE_PATH』 です。
その他の設定は、初期設定のままで動きます。
起動は jp.ne.mki.wedge.pub.vfunit.VfUnitXmlSuite のクラスを JUnit のRunnerに渡します。
junit.textui.TestRunner jp.ne.mki.wedge.pub.vfunit.VfUnitXmlSuite
※junit.swingui.TestRunner(GUI版) は
JUnit4では廃止されています。実行時にJUnit3を使用するとGUIでの実行が可能になります。
JUnitが実行できる環境であれば、どこでも実行できます。 バッチファイルに記述するのもよし、Eclipseから実行するのもよし、Antにて記述するのもよし・・・
Eclipseから起動する場合には JUnit実行構成 で jp.ne.mki.wedge.pub.vfunit.VfUnitXmlSuite の
単一テスト実行 を 行います。
テスト結果 は JUnitでの結果画面 と HTML(XML)レポート出力 の両方にて確認できます。
レポートは 実行カレントディレクトリ/report/report.html にて出力されます。
結果情報は ./report/report.xml にも出力されています。
プログラムから情報抜き出して・・・などの場合はこちらが使いやすいかとおもいます。
レポート出力サンプル(HTML)
レポート出力サンプル(XML)
レポートと一緒に テスト操作手順書も出力されます。
実行カレントディレクトリ/report/process.html にて出力されます。
操作手順書サンプル(HTML)
●Eclipseから実行した時の JUnit結果画面
XMLでテストケースを記述する場合、記述タグ (<click>など) を追加することができます。
クラスは jp.ne.mki.wedge.pub.vfunit.tag.IVfUnitProcess インターフェースを実装してください。
抽象クラスとして jp.ne.mki.wedge.pub.vfunit.tag.AbstractProcess がありますので、こちらを継承して
作成すると若干楽に作成可能です。
Assert系のタグは jp.ne.mki.wedge.pub.vfunit.tag.check 内のソースを、
処理系のタグは jp.ne.mki.wedge.pub.vfunit.tag.process 内のソースを参考にしてください。
作成したクラスは、junit.jar のリソースとして含まれている VfUnitTagMapping.properties
に内容を追加します。
記述は
{タグ名称}={クラス名}
として記述してください。
VfUnitTagMapping.properties は リソースとして読み込みますので、 修正したVfUnitTagMapping.properties は junit.jarよりも "前" にクラスパスに設定して実行するようにしてください。