2

我正在尝试将 boost 单元测试与 Allegro 图形库一起使用,但两者都需要main()更改/覆盖。有没有人有使用这两种方法的经验?

编辑 2010 年 1 月 29 日:我避免选择答案,直到我可以验证一个或另一个,并且由于......答案的稀疏性。

4

3 回答 3

1

boost.test 可以在有或没有 main() 的情况下使用。查看这些宏会给你一些如何正确使用它的想法:

//#define BOOST_TEST_MODULE my_test
//#define BOOST_TEST_MAIN
//#define BOOST_TEST_DYN_LINK
//#define BOOST_TEST_NO_MAIN
于 2010-01-26T06:47:38.267 回答
0

我不太明白这个问题,你做你想在 main 中运行的 boost 函数,allegro 设置,然后运行你的测试,做 allegro 拆卸,无论你想拆卸什么 boost。

除非您想对 allegro 设置功能进行单元测试,否则应该没有问题。

你能澄清或发布具体问题吗?

于 2010-01-26T05:15:34.373 回答
0

我对 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();
}
于 2011-11-24T22:37:02.287 回答