txpFTPの単体テスト(デバッグ版のビルド)の方法


前提条件


  • 以下の手順では、以下のソフトウエアがセットアップされていることを想定しています
    • JDK 1.6.0_7
    • JRuby 1.1.4
    • eclipse 3.3
    • Visual Studio C++ 2008 Express


SVNからの取得


  • SVNからのチェックアウト方法については、「SourceForge.JP >> プロジェクト >> txpFTP >> ソースコード管理」を参照してください
  • 例では"C:\Users\guccii\Desktop\txpftp\"にチェックアウトしています


eclipseへのロード、設定


  • eclipseへロードします
  • パッケージエクスプローラのコンテキストメニューの"インポート"によりインポートダイアログを表示します
  • インポートダイアログから"Existing Projects into Workspace"を選び、SVNから取得したtrunkディレクトリを指定します
  • "txpTxF", "txpTxF_test"が正しく検出されていることを確認してロードを行います
  • "txpTxF", "txpTxF_test"のロード完了
  • ちなみにJREに"×"がついている場合には、コンテキストメニューの"ビルドパスの構成"により、JDKの設定を修正してください


org.opentxp.txf.* のコンパイル


  • まずorg.opentxp.txf.*のコンパイルを実施する必要があります
  • org.opentxp.txf.*は、antによりコンパイルを行います
  • ビルドが成功したことを確認します


TxF32.DLLビルドのためのヘッダーファイル更新


  • 単にリビルドする場合には、ソース管理にすでにヘッダーが存在しますので、これを実行する必要はありません
  • nativeメソッドを持つクラスに変更があった場合などTxF32.DLLをビルドする場合には、nativeメソッドを含むjavaクラス宣言に対応するヘッダーファイルを生成する必要があります
  • ビルド(ヘッダーの生成)が成功したことを確認します


TxF32.DLLのビルド


  • 単にjavaクラスの単体テストを行うような場合には、txpTxF_Testディレクトリ下にTxF32.DLLが存在(ソース管理に登録)しますので、これを実行する必要はありません。
  • nativeメソッドを持つクラスに変更があった、あるいは、その実装に変更を加えた場合には、TxF32.DLLをビルドします。
  • txpTxF\c\win32\TxF32\TxF32.slnをMicrosoft Visual C++ 2008 Expressで起動します。
  • 単体テスト用には、デバッグ版をビルドします。(デバッグ版はtxpTxF_Testディレクトリ下にTxF32.DLLが作成されます。)


単体テストケースのコンパイル


  • eclipseで自動的にビルドする設定の場合には、特に必要ありません。
  • そうでない場合には、projectメニューからtxpTxF_testプロジェクトのビルドを行ってください


JUnitの実行方法


  • eclipseのJUnit実行ダイアログで、以下のとおり設定をそれぞれ選択して単体テストを実行します
    • Run a single test
    • project : txpTxF_test
    • Test class: org.opentxp.txf.TxFile_Test_All
    • Test runner: JUnit4
  • 単体テストが成功することを確認してください
  • ちなみにテストを実行する(テスト用のファイルを操作する)ディレクトリはTxFile_Test_Allクラスのメンバ変数TEST_DIR_NAMEで、"./testdata"と定義されています。トランザクショナルNTFSが別のドライブにあったり、トランザクショナルNTFSでないドライブでテストを行いたい場合などには、この変数を書き換えてから実行してください。


C++のデバッガ実行


  • Mircosoft Visual C++ 2008 で、txpTxF\c\win32\TxF32ディレクトリのTxF32.slnを開きます
  • デバッグの実行
    環境変数JAVA_HOMEがjdk1.6のホームディレクトリとして設定されていれば、デフォルトの設定で動きます。 ブレークポイントを設定して「デバッグの開始」をしてください
  • 環境がデフォルトの想定と違う場合には、プロジェクトのプロパティを調整してください。
    • 「プロジェクト」メニューの「TxF32のプロパティ」を選択して、プロジェクトのプロパティダイアログを開きます
    • 「コマンド」
      java.exe(jdk1.6以降)を指定します。 デフォルトでは環境変数JAVA_HOMEがjdk1.6のホームディレクトリとして設定されていることを前提としています。
    • 「コマンド引数」
      コマンド引数にはjava.exeに渡すコマンド引数を設定します。 デフォルトでは、デバッグ用のドライバとしてtxpTxF_Testのテストケース(junit4.4用)を使用しています。 引数に設定してある項目は、クラスパス、テスト実行ツールクラス、および、テストケースです。
      -classpath bin;..\txpTxF\classes;..\txpTxF\lib\junit-4.4.jar junit.textui.TestRunner org.opentxp.txf.TxFile_Test_All
    • 「作業ディレクトリ」
      デフォルトでは..\..\..\..\txpTxF_Testとなっており、TxF32.slnのあるディレクトリからの相対指定でtxpTxF_Test直下で実行する設定となっています。 またコマンド引数で指定してあるクラスパスは、この作業ディレクトリからの相対指定になっていますので、変更する場合には注意してください。
  • テストケースの選択
    デフォルトでは全テストケース(org.opentxp.txf.TxFile_Test_All)を実行するようになっています。 しかし実行するテストケースを絞りこんで指定した方がよりデバッグ(ステップ実行)が楽になります。 プロジェクトのプロパティの「コマンド引数」で指定しているテストケースを、実行したい特定のテストケースに変更します。
  • C++のソースコードを修正した場合
    デフォルトではデバッグ版のTxF32.DLLがtxpTxF_Testディレクトリ下にありますので、ビルドする必要はありません。 しかしソースコードを修正して実行する場合にはビルドが必要となります。(もしくは「デバッグの開始」のときに自動的にビルドされます。


org.opentxp.txfの内部用javadocの作成


  • org.opentxp.txfの内部用(privateメソッドまでを含んだ)javadocは、antにより作成を行います
  • txpTxF\docs\allに内部用javadocが作成されます