Boost logo

Boostテストライブラリ: よくある質問と答え

最新版のBoostテストライブラリはどこにあるのですか?

最新版のBoostテストライブラリは www.boost.orgで手に入る。

バグを見つけました。どこに報告すればよいのでしょうか?

バグレポートはGennadiy Rozentalまで送って欲しい。

新しい機能をリクエストしたいのですが、どこに言えばいいのでしょうか?

リクエストはGennadiy Rozentalまで送って欲しい。

どのようにテストケースを作ればいいのですか?

テストケースを作成するには、BOOST_TEST_CASE( test_function )マクロを使用する。詳しくはユニットテストフレームワークドキュメントに書いてある。

どのようにテストスイートを作ればいいのですか?

テストスイートを作るには、BOOST_TEST_SUITE( suite_name )マクロを使用する。詳しくはユニットテストドキュメントに書いてある。

テストプログラムをコンパイルしたら、なぜかリンクエラーになってしまいます。

Boost Testライブラリはオフラインに実装されている。テストプログラムを作るためには 事前にプリコンパイルしたライブラリコンポーネントをリンクするか、boost/test/included ディレクトリにある、"インクルードバージョン"のコンポーネントを使用しなければならない。 たとえば、テスト実行モニターを使用するためには<boost/test/test_tools.hpp> をインクルードしてlibtest_exec_monitor.libをリンクするか、プリコンパイルコンポーネント をリンクしたくなければ<boost/test/included/test_exec_monitor.hpp>をインクルードする 必要がある。この方法に厳密に従っても、コンパイラによっては以下のようなリンクエラーが 出力される場合がある。

Unresolved external 'init_unit_test_suite(int, char * *).

これはinit_unit_test_suite()の二番目の引数の型を、char* []に使用に正確にあわせる必要がある、 という意味である。

どうしたらテストの出力をリダイレクトできますか?

unit_test_log::instance().set_log_output( std::ostream&)を使用する。 詳細はユニットテストフレームワークのドキュメントに書いてある。

デフォルトのログのトレースレベルを変更するにはどうすればいいでしょうか?

環境変数BOOST_TEST_LOG_LEVELを、自分が望むログトレースレベルに設定する。 この値はコマンドラインから設定することができる。受入可能な値はユニットテストフレームワークのドキュメントに書かれている。