实现一个BOOST_TEST test_runner,用于从不同的共享库中运行多个测试。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现一个BOOST_TEST test_runner,用于从不同的共享库中运行多个测试。相关的知识,希望对你有一定的参考价值。
我试图为BOOST_TEST实现一个测试运行器,它可以插入一组包含测试的共享库。
我从官方的boost src中得到了最初的示例libstesttoolsconsole_test_runner。但不幸的是,这段代码无法编译,而且是一个很好的例子。荒废.
我已经设法建立了一个工作的test_runner,在第一次迭代时工作正常,加载了共享库,并执行了它的testcases.但如果我在第二次迭代时加载了任何其他共享库,test_runner的行为是未定义的,并崩溃。
我已将示例代码作为要点分享给大家。我想,问题出在共享代码中的boost测试框架的去初始化上,但我似乎不明白为什么。
答案
就像今天写的那样,Boost.Test希望只执行一次且唯一的初始化。
基本上从你的Gist中,在最后的 bool load_test_lib()
调用,Boost.Test继续用测试树进行初始化,这个测试树应该是在拉取你的共享库符号时定义的。我相信从那里你可以加载其他的共享库,但是在返回之前,你可以从 load_test_lib
职能。
以上是关于实现一个BOOST_TEST test_runner,用于从不同的共享库中运行多个测试。的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu14.04下安装 boost (boost_1.54 最简单的方法)