Boost logo

Boostテストライブラリ リリースノート

Boost リリース 1.30.0
Boostテスト v1からの移行ガイド

Boost release 1.30.0

  • ユニットテスト自動登録機能が導入された
    これはオリジナルのBoostテストのレビュー時からのリクエストで現バージョンで、独立した関数ベースのテストケースの自動登録がサポートされた。サンプル:
    #include <boost/test/auto_unit_test.hpp>
    
    BOOST_AUTO_UNIT_TEST( test1 )
    {
      BOOST_CHECK( true );
    }
    
    BOOST_AUTO_UNIT_TEST( test2 )
    {
      BOOST_CHECK( true );
    }
  • XMLログフォーマットが導入された
    自動的なエラー処理を行いたいユーザのために、XML形式のログ出力がサポートされた。以下のコマンドラインオプションを指定すると、生成するログのフォーマットをスイッチすることができる:
    --log_format=[XML|HRF] オプションで XML、人間向け(human readable format)を選択する
  • XMLレポートフォーマットが導入された
    自動的な結果分析を行いたいユーザのために、XML形式のレポート出力がサポートされた。以下のコマンドラインオプションを指定すると、生成するレポートのフォーマットをスイッチすることができる:
    --report_format=[XML|HRF] オプションで XML、人間向け(human readable format)を選択する
  • BOOST_CHECK_NO_THROW テストツールが導入された
  • BOOST_BITWISE_CHECK テストツールが導入された
  • ライブラリファイル名が以下のように変更になった:
    boost_prg_exec_monitor
    boost_test_exec_monitor
    boost_unit_test_framework
  • コンポーネントのサンプルとテストのドキュメントのページが追加された
    すべてのサマリー情報とともに、すべてのテストサンプルのリンクを追加した。サマリーには期待される出力や、テストの種類などの情報が含まれる。
  • システムエラー捕捉スイッチが導入された
    これがどのように動作するかは以下のラインで説明されている。 http://lists.boost.org/MailArchives/boost/msg40028.php
    環境変数名: BOOST_TEST_CATCH_SYSTEM_ERRORS[="no"]
    ユニットテストフレームワークコマンドライン引数: --catch_system_errors[="no"]
  • ダイナミックライブラリのビルドがJamfileに追加された
  • MS Cランタイムのデバッグフックが導入された
    MSVCの_ASSERTによる例外をキャッチできる
  • SIGABRTのキャッチが追加された
  • すべての場所でNULLを取り除いた
    typedef c_stringリテラルをchar const*からNULLを使わないc_string literal()に変更した。NULLシンボルの定義がコンパイラごとに異なり、たまに問題が発生したため。
  • wrapstrstreamクラスを単独のファイルに分離し、wrap_stringstreamに名前を変更した
    このファイルはtest/detailにある。これに関するドキュメントは将来、utilityに追加されるだろう。
  • 例外時にreset_current_test_setのコールを制御する、unit_test_result_saverが導入された。
  • unit_test_main.cppファイル内の生のtest_suiteポインタをscoped_ptrに変更した
  • BOOST_CPP_MAIN_CONFIRMATIONをBOOST_PRG_MON_CONFIRMに変更し、ロジックを多少変更した。
    実行パスの確認をオフにするにはこの値を"no"にする必要がある。
  • 自動ユニットテストと例外キャッチ表明文のテストが追加された
  • サンプルディレクトリにJamfileを追加した
  • unit_test_example5のサンプルの入力を追加した
  • ログとレポートの出力フォーマットを同時に変更する、--output_formatというコマンドラインオプションが導入された
  • 2つの引数に対するビットでの比較が導入された。間違ったビットの数だけ報告される。間違った位置も報告される。
  • ドキュメントのスタイルシートの背景を白に変更
  • シグナルハンドリング選択アルゴリズムの修正
    シグナルハンドリングの選択法をBOOST_HAS_SIGACTIONを用いて選択するようになった。これはwin32プラットフォーム上でのgccでシグナルハンドリングに使用される。
  • できる限りC文字列の使用を減らした
  • friend宣言のために、Boost.Preprocessorclass_propertiesを使うようにヘッダファイルが変更された
  • その他、小さなバグフィックスをプログラム、ドキュメントともに行った。

Boostテスト 移行ガイド

このバージョンのBoost.Testライブラリは、 Boost で使用されていた元のテストライブラリに置き換わるものである。 以下にあるいくつかの簡単な手順を行えば、最新のソフトウェアに問 題なく移行することができる。

もし、オリジナルのcpp_main機能を使っている場合には、 すでに存在しないので、移行するためには<boost/test/cpp_main.cpp>の インクルードを削除しなければならない。あとはいくつかの選択肢がある:

  • プログラム実行モニターをリンクする。正確なライブラリ名はコンパイラに依存するが、おそらくはlibboost_prg_exec_monitor.libといった名前である。
  • あらかじめコンパイルしたコンポーネントをリンクしないで済む場合には、 <boost/test/included/prg_exec_monitor.hpp>をインクルードする。 ただし、コンパイル時間にオーバーヘッドが発生する。

もしオリジナルバージョンのtest_mainとテストツールを使用している場合には、最新のライブラリを使用しているテストと統合するためには以下の選択肢がある:

  • もしBoost.Testを使ったコードを変更したくないのであれば、テスト実行モニターをリンクする。このライブラリ名はコンパイラに依存するが、おそらくlibtest_exec_monitor.libといったような名前になる。
  • あらかじめコンパイルしたコンポーネントをリンクしたくない場合には、 <boost/test/included/test_exec_monitor.hpp>をインクルードする。 ただし、コンパイル時間にオーバーヘッドが発生する。 BOOST_INCLUDE_MAINの定義は消すことができる。 could be deleted either.
  • あらかじめコンパイルしたコンポーネントをリンクしたくない場合には、 <boost/test/minimal.hpp>をインクルードする。 ただし、コンパイル時間にオーバーヘッドが発生する。 しかしこの方法では、限定された機能しか使用することができない。 BOOST_INCLUDE_MAIN宣言は消すことができる。もし新しく追加された機能を 使用した場合には、上記のふたつのどちらかの方法を選択すべきである。