实现一个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测试框架的去初始化上,但我似乎不明白为什么。

gist

答案

就像今天写的那样,Boost.Test希望只执行一次且唯一的初始化。

基本上从你的Gist中,在最后的 bool load_test_lib() 调用,Boost.Test继续用测试树进行初始化,这个测试树应该是在拉取你的共享库符号时定义的。我相信从那里你可以加载其他的共享库,但是在返回之前,你可以从 load_test_lib 职能。

以上是关于实现一个BOOST_TEST test_runner,用于从不同的共享库中运行多个测试。的主要内容,如果未能解决你的问题,请参考以下文章

具有自动生成源的 Cmake 可执行文件

Ubuntu14.04下安装 boost (boost_1.54 最简单的方法)

当一个类实现一个接口时,它必须实现该接口中的所有方法。(判断题)

JavaScript———原理题

java中,一个类实现了某个接口,啥意思?实现它,可以干啥

一个类没有接口,如何实现Spring管理