我能否仅通过升压单元测试获得日志输出?

kdt*_*kdt 5 c++ boost unit-testing boost-test boost-unit-test-framework

我的应用程序中有一些日志记录(碰巧是log4cxx,但是我很灵活),并且我使用Boost单元测试框架进行了一些单元测试。运行单元测试时,无论通过测试还是失败测试,​​我都会得到很多日志输出(不仅是增强的断言记录,还有我自己的应用程序代码的调试日志记录)。我想获得单元测试框架,以在通过的测试中丢弃日志,并从失败的测试中输出日志(我逐渐意识到使用python / nose时的这种行为)。

使用Boost单元测试框架有某种标准的方法吗?如果没有,我是否可以使用一些测试开始/测试挂钩结束来缓冲我的日志并有条件地输出它们以自己实现此行为?

Tem*_*Rex -1

根据Boost.Test 文档,使用 运行测试可执行文件--log_level=error。这只会捕获失败的测试用例。

我检查了它是否可以BOOST_CHECK(false)在一个正确运行的项目上使用数千个单元测试来工作。

运行 with--log_level=all给出所有断言的结果。我通过管道检查wc -l日志中的行数与测试中的断言数完全相同(该数字也由 报告--report_level=detailed)。您当然也可以grep记录字符串errorfailed.