WtlTestRunner

概要

CppUnit 1.12.1にあったMFC版テストランナーをWTL(Windows Template Library)に移植したものです。
LGPLなので、自由に改変・再頒布して構いません。

テンプレートライブラリによるWtlTestRunner.hファイルのみで実装されています。
「MfcTestRunnerじゃ、非MFCライブラリをテストしづらい!」という不満からこさえました。
ついでなので公開します。

基本的にMfcTestRunnerの挙動を受け継いでいます。
表示文字列などは原文のままです。
480行目あたりにまとめて文字列定義してあるので、そこを変更することで日本語インターフェースになります。

ダウンロード:WtlTestRunner.zip

 

作成・動作確認環境

オペレーティングシステム Windows Vista Ultimate x64 SP2
開発環境 Visual Studio 2008 SP1
※2003,2005でも多分ok
CppUnit 1.12.1
WTL 8.1.9127

 

 

変更点

  • Visual Studioとの連係機能を強化しました。
    • Visual Studio 2003/2005/2008で(タブン)動作します。
      (動作確認はVisual Studio 2008 SP1でのみ行っています)
    • デバッガ起動時にテスト失敗箇所へジャンプ(エラー&失敗一覧の該当項目をダブルクリック)したときに、テストランナーを起動しているウィンドウ上でファイル表示されるように修正しました。
      (Visual Studioを複数起動していても関係のないウィンドウで開かれることが無くなりました)
    • たまにエラー箇所が開かれないケースに対処。
  • MfcTestRunnerのバグを修正しました。
    • エラー詳細表示ウィンドウが固定フォント(14ポイント)で表示されるように修正しました。
    • デッドロックする可能性のあったコードを修正しました。
    • テスト失敗時に、フォーカスが該当項目に移動するよう修正しました。
  • 初回起動時にテスト(通常は"All Tests")が選択されるように修正しました。
    次回起動時からは最後に実行したテストが選択されます(従来通り)。
  • ウィンドウ管理機能を追加
    • テストランナーを最大化したまま終了させても、次回起動時には最大化前のサイズで起動するように修正しました。
    • 記憶されたダイアログのサイズや位置がモニターからはみ出してしまった場合に、モニター内に収まるよう移動・サイズ変更する機能を追加しました。
      (マルチモニターにも対応しています)
  • テスト実行時間を逐次更新するように修正しました。
    (従来はテスト終了時に実行時間が更新されていました)
  • ダイアログの位置やサイズ、テスト履歴をINIファイルに保存するように修正しました。
    実行ファイルと同じフォルダに「実行ファイル名+".ini"」で保存されます。
  • ダイアログをサイズ変更しても、エラー&失敗一覧(リストビュー)の縦幅は変更できません。
    横幅は変更されます。 手抜き実装が原因なので、そのうち対処するかもしれません。
  • エラー&失敗一覧、テスト継承ツリーのアイコン表示が省略されています。

 

インストール

  1. CppUnitの環境を整えます。
    1. cppunit-1.12.1\src\CppUnitLibraries.dswを開きます。
    2. 変換ウィザードが起動するので、そのまま変換します。
    3. cppunitプロジェクト(Debug構成)をリビルドします。
    4. cppunitプロジェクト(Release構成)をリビルドします。
    5. MfcTestRunnerを使う場合は、testrunnerプロジェクト(Debug構成、Release構成、Debug_Unicode構成、Release_Unicode構成)をリビルドします。
    6. cppunit-1.12.1\inlcudeをVisual Studioのインクルードパスに追加します。
    7. cppunit-1.12.1\libをVisual Studioのライブラリパスに追加します。
    8. MfcTestRunnerを使う場合はcppunit-1.12.1\libにパスを通します。
  2. WTLの環境を整えます。
    1. WTL81_9127\includeをVisual Studioのインクルードパスに追加します。
    2. 必要ならばWTL81_9127\ApWiz\setup90.jsなどを実行し、新規WTLプロジェクト作成ウィザードを登録します。
  3. WtlTestRunner.hを任意の場所に置きます。
    cppunit-1.12.1\include\cppunit\ui\wtlに置くとそれっぽくなりますが、どこに置いてあっても構いません。
  4. ユニットテストプロジェクトを作ります。
    1. (例)Win32コンソールプロジェクトを新規作成します。
    2. 下記サンプルコードのように記述します。
    3. 実行するとWtlTestRunnerが起動します。

サンプルコード

Code Snippet
  1. #include <cppunit/ui/wtl/WtlTestRunner.h>
  2. #include <cppunit/extensions/TestFactoryRegistry.h>
  3. int _tmain(int /*argc*/, TCHAR* /*argv*/[], TCHAR* /*envp*/[])
  4. {
  5.     CppUnit::WtlTestRunner runner;
  6.     runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );
  7.     runner.run();
  8.     return 0;
  9. }

WtlTestRunner起動画面

image

1個のトラックバック

  1. WTL版CppUnit TestRunner – クロノアシステムズ さんからのコメント 2010年2月5日, 5:58 PM

    [...] WtlTestRunner – クロノアシステムズ 日付:2009-07-12 カテゴリー:CppUnit, プログラミング タグ:CppUnit,WTL,WtlTestRunner コメントする パーマリンク コメントRSS トラックバック « qedit [...]

コメントを書く

Your email is never shared.