3

私は Hudson CI システムをセットアップしており、今のところ、プロジェクトの構築と単体テストの実行に使用しています。次のステップは、メモリ リーク検出器の Purify をビルド サイクルに統合することです。ここで、purify 内でも単体テストを開始したいと考えています。このために、次のコマンドを実行する新しいバッチ タスクを作成しました。

purify.exe /SaveTextData MyExecutable.exe --test TestLibrary.dll --output xml

Purify のドキュメントで読んだように、GUI モードではなく purify を実行するために /SaveTextData オプションが使用されます。コマンドラインでローカルワークステーションでこのコマンドを実行すると、完全に機能します。ただし、ハドソンによって開始された場合は、何も起こりません。残念ながら、浄化のログはありません...

Hudson やその他の CI システムで浄化を開始しようとした人はいますか?

前もって感謝します。

よろしくお願いします

マーティン

編集: Hudson を異なるコンピューターでマスターとスレーブとして実行していることをお伝えするのを忘れていました。マスターで、スレーブの浄化内で単体テストを開始するタスクを構成しました。JNLP 経由でスレーブを実行しています。

編集 18.03.2010:

わかりましたので、ようやく問題の原因に少し近づきました。

purify ローカルで単体テストを実行すると、ログ ファイル EngineCmdLine.log に 3 つのコマンドが含まれていることがわかりました。

次のコマンドで浄化を開始しています。

purify.exe /SaveTextData TestRunnerConsoleWD.exe --test TestDemoWD.dll

purify を手動で開始したときの EngineCmdLine.log の出力:

ファイル: D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msv9\TestRunnerConsoleWD.exe

ファイル: C:\WINDOWS\system32\ws2_32.dll

ファイル: D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msvs9\TestDemoWD.dll

Hudson 経由で起動した場合の出力:

File: D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msvs9\TestRunnerConsoleWD.exe
File: C:\WINDOWS\system32\ws2_32.dll

File: D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msvs9\TestDemoWD.dll

File: D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msvs9\TestDemoWD.dll

purify のエラー出力:

Instrumenting: 
  BtcTestDemoWD.dll 313856 bytes

Purify: While processing file > D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msvs9\TESTFWWD.DLL:
Error: Cannot replace file c:\Programme\IBM\RationalPurifyPlus\PurifyPlus\cache\BTCTESTFWWD$Purify_D_workspace_hudson_workspace_Purify__TestFW__CommonsCoreTest__Cpp__msvs9.DLL.    

Is it in use?

TESTFWWD.DLL 505344 bytes


Unable to instrument D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msvs9\TestDemoWD.dll (0x1)

問題は、purify が TestDemoWD.dll ライブラリでコマンドを 2 回開始するのはなぜですか?

4

0 に答える 0