5

ブースト テスト ライブラリを使用して単体テストを実装しようとしています。ブーストサイトでマニュアルを読むことから始めました。この後、既存のプロジェクトの 1 つで簡単なテスト プログラムを作成します。私が直面している唯一の問題は、テスト結果を見ることができないということです。私は何か間違っていると確信しています:)しかし、私はそれを理解することができません。以下は私のプロジェクトの詳細です

これにはVisual Studio8を使用しています:MyProject.slnという名前のソリューションがあります

他のプロジェクトと一緒に、MyDLL.vcprojという名前のプロジェクトがあります(このプロジェクトのタイプはDLLです)

MYDLL proj の他のファイルとともに、新しい cpp ファイル名MyTest.cppを追加します。ファイルには次のコードが含まれています。

#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MAIN
//#define BOOST_TEST_MODULE MyTestTestModue  //no need for this maro if above macro is used
#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_CASE(SampleTC)
{
    BOOST_CHECK(true);
};    

MYDLL プロジェクトのプロパティ シートで次の変更を行います

C++ -> General -> Additional Include Dependencies = D:\MyProject\Boost\boost\test
Linker -> General -> Additional Libray Directories = D:\MyProject\Boost\lib\win32\Debug
Linker -> System -> SubSystem = (/SUBSYSTEM:CONSOLE)

マニュアルに記載されているコンパイルの詳細をすべて読みましたが、まだ出力を取得できません。理想的には、Boost テストをスタンドアロン ライブラリ (UTF の動的ライブラリ バリアン) として使用したいと考えています。

4

2 に答える 2

4

私は何か間違っていると確信しています:)

実際、問題はあなたが何かを正しく作っていることだと思います。

チェックされた値が であるため、テストに合格し、trueデフォルトでは Boost.Test は失敗したテストに関する情報のみを出力します。--log_level=allログ レベルを設定する必要があります。これは、テスト実行可能ファイルをオプションとして渡すか、環境変数BOOST_TEST_LOG_LEVELを に設定する2 つの方法のいずれかで実行できますall

すべてのランタイム パラメータについては、ドキュメントのこのページを参照してください。

編集:実際には --log_level です(真ん中にアンダースコアがあります)

于 2011-02-04T07:04:10.223 に答える
1

私たちの単体テストは、コンパイル後のツールを介して呼び出されます。そのため、パラメーターを EXE に簡単に渡すことはできません (ツール構成を変更してすべてのテストに影響を与えることなく)。

したがって、ログ レベルのしきい値を設定する別の方法は、コードから Boost 単体テスト ロガー シングルトンを呼び出すことです。

boost::unit_test::unit_test_log_t::instance().set_threshold_level( boost::unit_test::log_messages );

楽しみのために、メッセージが表示されるファイル名と行番号を出力します。

 #define MY_BOOST_TEST_MESSAGE( msg ) BOOST_TEST_MESSAGE( `__FILE__` << `__LINE__` << " " << msg )
于 2014-02-24T14:41:30.073 に答える