2017-02-01 9 views
0

これはかなり基本的な質問ですが、私はアイデアが足りなくなりました。私は私のクラスのための私のサンプルテストを持っています:QT CreatorでBoost Unit Testを実行するには?

#define BOOST_TEST_MODULE MyTest 
#include <boost/test/unit_test.hpp> 
BOOST_AUTO_TEST_CASE(my_test){ 
     Hero TestHero ("Hika",100,100,100,100,100,100,100,0,100);   
     BOOST_CHECK (TestHero.getHP() == 100); } 

これらは私のtests.cppファイルに格納されています。私の質問は、アプリケーション全体ではなくテストだけを実行する方法です。

答えて

0

ユニットテストは通常​​、アプリケーションに実行可能なので実行されます。

ユニットテストライブラリboostを実行するには、テスト実行ファイルをboost_test_exec_monitorにリンクする必要があります。

注:boostライブラリの正確な名前は、オペレーティングシステム、コンパイラ、マルチスレッドおよびデバッグモードによって異なります。参照:how can I decode boost library naming
ブーストライブラリの命名は、通常linuxの方が簡単です。しかし、あなたは、次qmake行は、マルチスレッドdubugモードでMinGWとWindows上でリンクされます関連する環境変数を定義する場合:

BOOST_LIB_SUFFIX = $${MINGW_VERSION}-mt-gd$${BOOST_VERSION} 

INCLUDEPATH += $$BOOST_ROOT 
LIBS += -L$${BOOST_ROOT}/stage/lib 
LIBS += libboost_test_exec_monitor$${BOOST_LIB_SUFFIX} 

あなたは、単一のファイルにあなたのユニットテストのすべてを置くことができ、それは置く方が良いでしょう例えばtest_main.cppというファイルに次のように記述して、qmakeファイルのソースファイルに追加します。

#include "Hero.hpp" 
#include <boost/test/unit_test.hpp> 

BOOST_AUTO_TEST_SUITE(MyTests) 

BOOST_AUTO_TEST_CASE(my_test){ 
     Hero TestHero ("Hika",100,100,100,100,100,100,100,0,100);   
     BOOST_CHECK_EQUAL (100, TestHero.getHP()); } 

BOOST_AUTO_TEST_SUITE_END() 

あなたのユニットテストqmakeファイルは、関連するソースファイルとテストファイルを一緒に含まれている必要があります

別々のユニットテストファイルは、その後書き込まれおよび例えば、ユニットテストqmakeファイルに追加することができます

#define BOOST_TEST_MODULE Main 
#include <boost/test/unit_test.hpp> 

SOURCES += tests/test_main.cpp \ 
    tests/my_test.cpp \ 
    src/Hero.cpp 

testsディレクトリを検索:via-httplib COMPLのためのアプリケーション、例えばから例。

関連する問題