单元测试通常在您的应用程序的独立可执行文件中运行。
要运行boost 单元测试库,测试可执行文件必须链接到boost_test_exec_monitor。
注意:boost 库的确切名称取决于您的操作系统、编译器、多线程和调试模式。请参阅:how can I decode boost library naming.
linux 上的 Boost 库命名通常更简单。但是,如果您定义了相关的环境变量,那么以下 qmake 行将在 Windows 上以多线程 dubug 模式与 MinGW 链接:
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 文件中的源文件中。
#define BOOST_TEST_MODULE Main
#include <boost/test/unit_test.hpp>
然后可以编写单独的单元测试文件并将其添加到单元测试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 文件应包含测试文件以及应用程序中的相关源文件,例如:
SOURCES += tests/test_main.cpp \
tests/my_test.cpp \
src/Hero.cpp
在tests 目录中查看完整示例:via-httplib。