2月
23
Jenkins で自動ビルドして自動テストするわけですが、Ut Video Codec Suite は Windows 版は x86 版と x64 版の2つがあるので、それぞれを別の実行ファイルでテストする必要があります。
最初、何も考えずに、x86 用のテストと x64 用のテストを別個の「Windowsバッチコマンドの実行」で書いておいたら、x86 のテストが失敗した(失敗するテストケースが1つ以上ある)時に、x64 のテストが実行されなくなってしまいました。テストプログラムは失敗すると exit code を nonzero にするので、確かにそうなります。
ただ、実際には以下の動作を期待したいところです。
- テストの成否にかかわらず、x86 のテストも x64 のテストも実行されて欲しい。
- いずれかのテストが失敗したら、ビルド失敗として報告する。全てのテストが成功したら、ビルド成功として報告する。
結果として、以下のような1つの「Windowsバッチコマンドの実行」を書きました。
chcp 65001 Release\tests.exe --log_format=XML --log_sink=tests-x86.xml --log_level=all set ERRLVL86=%ERRORLEVEL% x64\Release\tests.exe --log_format=XML --log_sink=tests-x64.xml --log_level=all set ERRLVL64=%ERRORLEVEL% if "%ERRLVL86%" NEQ "0" goto errexit if "%ERRLVL64%" NEQ "0" goto errexit exit /b 0 :errexit exit /b 1
あまりかっこよくはありませんが…
なお、テストの成否にかかわらずビルド成功として報告する場合は上よりはるかに単純になりますが、テストが失敗したのにビルドが成功と報告するとテスト失敗を見落とすことになるので、すべきではないと思われます。
no comment untill now