如何在Boost测试套件中运行所有已启用的测试

时间:2017-10-27 00:01:29

标签: c++ unit-testing boost

如何在Boost测试套件中运行所有启用的单元测试?我用装饰器启用/禁用了一些测试。

当我使用测试套件名称作为说明符运行测试套件时,所有测试运行,包括禁用测试

C ++代码(predicate.cpp):

#define BOOST_TEST_MODULE decorator_predicate
#include <boost/test/included/unit_test.hpp>
namespace utf = boost::unit_test;

BOOST_AUTO_TEST_SUITE(test_suite_1)

BOOST_AUTO_TEST_CASE(bare_test)
{
  BOOST_TEST(true);
}

BOOST_AUTO_TEST_CASE(enabled_test,
  * utf::enabled())
{
  BOOST_TEST(true);
}

BOOST_AUTO_TEST_CASE(disabled_test,
  * utf::disabled())
{
  BOOST_TEST(false);
}

BOOST_AUTO_TEST_SUITE_END()

BOOST_AUTO_TEST_SUITE(test_suite_2)

BOOST_AUTO_TEST_CASE(bare_test)
{
  BOOST_TEST(true);
}

BOOST_AUTO_TEST_CASE(enabled_test,
  * utf::enabled())
{
  BOOST_TEST(true);
}

BOOST_AUTO_TEST_CASE(disabled_test,
  * utf::disabled())
{
  BOOST_TEST(false);
}

BOOST_AUTO_TEST_SUITE_END()

输出:

# Compile the test
g++ predicate.cpp -o predicate

# List all tests
./predicate --list_content
test_suite_1*
    bare_test*
    enabled_test*
    disabled_test 
test_suite_2*
    bare_test*
    enabled_test*
    disabled_test 

# Run the tests that are enabled by default
./predicate
Running 4 test cases...

*** No errors detected

# Here, I would like to only run the enabled tests of test_suite_1.
# Instead, all tests are run. Including the disabled.
./predicate -t test_suite_1
Running 3 test cases...
predicate.cpp(21): error: in "test_suite_1/disabled_test": check false has failed

*** 1 failure is detected in the test module "decorator_predicate"

如何才能运行test_suite_1的启用测试?

0 个答案:

没有答案