c++ - 我如何判断到目前为止是否有任何 BOOST_CHECK 测试失败?

标签 c++ boost boost-test

我有一个 boost 测试用例,它使用 BOOST_CHECK* 进行一些检查,因此失败不会立即停止测试。但在某些时候,如果到目前为止发生任何测试失败,我想停止,因为如果健全性检查失败,剩下的测试就没有意义了?例如:

BOOST_AUTO_TEST_CASE(test_something) {
    Foo foo;
    BOOST_CHECK(foo.is_initialized());
    BOOST_CHECK(foo.is_ready());
    BOOST_CHECK(foo.is_connected());
    // ...

    // I want something like this:
    BOOST_REQUIRE_CHECKS_HAVE_PASSED();

    foo.do_something();
    BOOST_CHECK(foo.is_successful());
}

最佳答案

可以检查当前测试的状态,如下所示:

namespace ut = boost::unit_test;
auto test_id = ut::framework::current_test_case().p_id;
BOOST_REQUIRE(ut::results_collector.results(test_id).passed());

关于c++ - 我如何判断到目前为止是否有任何 BOOST_CHECK 测试失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27002183/

相关文章:

c++ - 使用不同的类类型重复 Boost 单元测试

c++ - 在RemoteHostClosedError之后重新连接到服务器时,QTcpSocket无法传输数据

c++ - 初始化包含元组数组的类的正确且简单的方法是什么?

c++ - 图像作为源代码文档/注释的一部分?

c++ - 引用成员抽象类的Boost序列化

c++ - 对 DLL 中的非导出类进行单元测试

c++ - Qt:如何使用连接处理自定义事件?

c++ - (不)在异常中使用 std::string

C++ - 占位符如何工作(特别是在 boost::type_erasure 中)?

boost - cmake 找不到 boost 库