到目前为止,如何判断BOOST_CHECK测试是否失败?

Tav*_*nes 3 c++ boost boost-test

我有一个使用的增强测试用例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());
}
Run Code Online (Sandbox Code Playgroud)

Tav*_*nes 5

可以按如下方式检查当前测试的状态:

namespace ut = boost::unit_test;
auto test_id = ut::framework::current_test_case().p_id;
BOOST_REQUIRE(ut::results_collector.results(test_id).passed());
Run Code Online (Sandbox Code Playgroud)