我正在尝试将 boost 单元测试与 Allegro 图形库一起使用,但两者都需要main()
更改/覆盖。有没有人有使用这两种方法的经验?
编辑 2010 年 1 月 29 日:我避免选择答案,直到我可以验证一个或另一个,并且由于......答案的稀疏性。
我正在尝试将 boost 单元测试与 Allegro 图形库一起使用,但两者都需要main()
更改/覆盖。有没有人有使用这两种方法的经验?
编辑 2010 年 1 月 29 日:我避免选择答案,直到我可以验证一个或另一个,并且由于......答案的稀疏性。
boost.test 可以在有或没有 main() 的情况下使用。查看这些宏会给你一些如何正确使用它的想法:
//#define BOOST_TEST_MODULE my_test
//#define BOOST_TEST_MAIN
//#define BOOST_TEST_DYN_LINK
//#define BOOST_TEST_NO_MAIN
我不太明白这个问题,你做你想在 main 中运行的 boost 函数,allegro 设置,然后运行你的测试,做 allegro 拆卸,无论你想拆卸什么 boost。
除非您想对 allegro 设置功能进行单元测试,否则应该没有问题。
你能澄清或发布具体问题吗?
我对 qt 有类似的问题,这里是使用共享库在 boost 1_44 上为我工作的代码
//Testing the lib
//###################################################################################
//Setting up boost testing framework
#define BOOST_TEST_NO_MAIN
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MODULE "Unit test for libcommon"
#include <boost/test/unit_test.hpp>
#include <boost/test/test_tools.hpp>
//###################################################################################
#include <QApplication>
#include <QtGui>
using namespace boost::unit_test;
int main(int argc, char *argv[]) {
(void) argc;
(void) argv;
QApplication app(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
::boost::unit_test::unit_test_main( &init_unit_test, argc, argv );
return app.exec();
}