Boost.Test 版本
framework_init_observer_t 中的未初始化内存basic_cstring<CharT>::trim_right 中的未定义行为BOOST_TEST_GLOBAL_FIXTURE 文档误导framework_init_observer_t 中未初始化的变量priority_order 中比较无关指针的 UBenum arity 替换为 static constexprlazy_ostream 中使用 boost_test_print_type 自定义点execution_aborted 异常以允许从 DLL 外部捕获它catch_system_error 选项设置为 no 时相同。感谢 Tom Hughes 提供此功能。现在可以在单个 BOOST_TEST 表达式中组合容差指示、用户消息和集合比较修饰符
std::vector<double> v1 = f(); std::vector<double> v2{1.1, 1.19}; BOOST_TEST(v1 == v2, boost::test_tools::tolerance( 1e-3 ) << "comparison to ground truth failed" << boost::test_tools::per_element());
test_tools-test 在某些架构上失败nvccumask)-Wattributes 警告-Wdelete-non-abstract-non-virtual-dtor 由 test_case_gen 触发[-Wfloat-equal]BOOST_HEADER_DEPRECATED 的不正确用法BOOST_AUTO_TEST_CASE_TEMPLATE 生成无效的 XML 日志BOOST_TEST_NO_LIBmsvc 版本的虚拟析构函数/W4)BOOST_TEST (通过 #GH-173)unit_test_main.ipp 中未使用的变量警告__linux__ 而不是 __linuxwchar_t 的已删除 std::basic_ostream::operator<< 导致的编译问题root_test_unit_id 的未使用参数警告C4265 警告(重复 #11107)std::string_view 的支持。boost::exception 和无 rtti 模式下更好的诊断(感谢 Mikhail Pilin / #PR-234)BOOST_TEST 可用于比较抽象类型sampleBOOST_TEST_CONTEXT 为同一上下文传递多个值。BOOST_TEST_INFO_SCOPE 允许以粘滞方式定义当前作用域的上下文。现在可以使用 浮点比较,而无需将两个操作数都转换为浮点类型。现在 Boost.Test 将浮点比较用于诸如
BOOST_TEST(3.0001 == 3);
有关更多信息,请参阅此部分。
Boost.Test minimal.hpp 现在显示弃用警告。minimal.hpp 已经弃用了很长时间,并将很快删除。请切换到例如 Boost.Test 的头文件变量。使用 minimal.hpp 的测试可以很容易地转换为头文件变体。例如,以下代码
#include <boost/test/minimal.hpp> int test_main( int, char *[] ) { ... }
可以重写为
#include <boost/test/included/unit_test.hpp> BOOST_AUTO_TEST_CASE(test_main) { ... }
boost::unit_test::unit_test_log_formatter::log_build_info 略有更改,以接受一个额外的布尔参数。如果您有自定义日志记录器,则需要更新其签名。BOOST_DATA_TEST_CASEconst-volatile 说明符-Wformat-overflowgcc-8 在退出时识别出 UBSAN 问题[snippet_dataset1_3] 似乎已损坏boost_check_equal-str-test 在 llvm 上失败doc_example22(和 23)预期会失败,但在使用 clang 的发布变体构建时没有失败master_test_suite 声明两次BOOST_UNIT_TEST_FRAMEWORK_DYN_LINK 等1.69 后运行时 type_mismatchboost/timer.hpp 已弃用windows.h 应该是小写assertion_result 的 ar 参数以避免警告BOOST_SYMBOL_VISIBLE 不能用于 Sun Studio 的 enumsNDEBUG 时检查未使用的变量example 12 中 bind1st 的用法example 04 中多余的分号master_test_suite 的声明方式不同BOOST_TEST_CONTEXTvsnprintf 编译错误和警告1.48 以来一直使用已弃用的 Boost.Timer 类(通过 #GH-202 解决)namespace boost::timer {} 重新声明为不同类型的符号(通过 #GH-202 解决)libs/test/tools/console_test_runner 无法编译BOOST_AUTO_TEST_CASE_TEMPLATE() 中使用通用 typelist 类型BOOST_TEST_CASE_NAMEboost::exception 中的消息close_at_tolerance 对于无穷大比较始终返回 falsebool 的类型时,检测 boost_test_print_type 不起作用v1.68.0 后,MSVC x64/Debug 启动速度显著变慢boost::exception 的 catch 块出现在 execution_monitor::execute() 中的 std::exception 之后BOOST_CLANG 未定义,评估为 0--color_output=no 时,不输出颜色代码+ 破坏了第一列(重复 #12216)-Werror=missing-declarations 无法编译BOOST_TEST_CASE 的问题argc 和 argv。为了指示应延迟实例化的数据集,引入了一个新的 data::make_delayed 助手。data::make 创建数据集,具有可变数量的参数。由于数据集是单态的,因此应该可以将所有元素强制转换为第一个元素类型。master_test_suite_t 不再可复制。std::initializer_list 创建的数据集尤其如此。std::cout 或 std::cerr 的输出流,颜色默认开启。这可以通过向命令行传递 --no_color_ouput(或仅 --no_color)来禁用。BOOST_AUTO_TEST_CASE_TEMPLATE 现在接受 std::tuple 中的类型序列[clang] 修复 [-Wc++11-narrowing] 错误gcc >= 7 的一些 fallthrough 警告stdcerr 文件创建Windows.h 包含改为全小写 (MinGW)BOOST_AUTO_TEST_CASE_TEMPLATE 中使用 std::tuple 类型列表print_helper_t<nullptr_t> 的问题errors.hpp 需要将警告 C4946 设置为 offBOOST_AUTO_TEST_CASE_TEMPLATE 不希望列表使用 typedefbegin 和 end 但没有 const_iterator 的类--log_sink=file 后释放内存BOOST_TEST_GLOBAL_CONFIGURATION(结果报告关机时间)BOOST_GLOBAL_FIXTURE 已标记为已弃用,并将在后续版本中移除BOOST_GLOBAL_FIXTURE 内部使用测试断言和宏是不允许的。请改用 BOOST_TEST_GLOBAL_FIXTURE(见下文)。BOOST_GLOBAL_FIXTURE,转而使用 BOOST_TEST_GLOBAL_FIXTURE 和 BOOST_TEST_GLOBAL_CONFIGURATION。这有助于将与主测试套件关联的 fixture 的逻辑与用于设置日志记录和报告设施的逻辑分开,从而实现更干净的设计。BOOST_TEST 检查来比较集合与常规数组。有关更多详细信息,请参见此部分。operator<< 的侵入性更小。success 和 non-fatal error 之间,并默认为 general information。BOOST_NO_EXCEPTIONS 拼写错误导致 throw_exception 在某些情况下不可用FE_* 宏用法(无法在无 FPU 架构上编译 boost 测试库)(重新打开)BOOST_AUTO_TEST_SUITE:通过使用 __COUNTER__ 生成唯一名称VERSION 的变量nullptr 问题)对左移运算符无效:”自 1.62 版以来被解释为过滤器分隔符,否则无法执行 --list_content 报告的测试。有关更多详细信息,请参阅 #12531。per_element 和 lexicographic BOOST_TEST 的修饰符也可以应用于字符串比较。有关更多详细信息,请参见字符串比较。FE_* 宏用法(无法在无 FPU 架构上编译 boost 测试库)BOOST_TEST() 将 std::string 视为集合?report_sink 描述中的拼写错误--report_sink 参数损坏--run_test 不接受包含 ':' 的测试名称--run_test 的字符串会生成标记,就像 --run_test 已重复一样,这使得可以通过关联的环境变量 BOOST_TEST_RUN_FILTERS 设置多个测试过滤器--logger 和相应的环境变量 BOOST_TEST_LOGGER。BOOST_TEST_DISABLE_ALT_STACK。[bb10/qnx failures] 构建错误BOOST_DATA_TEST_CASE 中为每个数据集生成唯一且稳定的测试名称abi::__cxa_demanglegetchar() 在 uClibc 中定义为宏)std::tuple 的数据驱动测试已损坏test_case_gen 生成的 test_units 中行号不正确boost/test/impl/debug.ipp:忽略 WaitForSingleObject 的返回值BOOST_DATA_TEST_CASE 中添加 fixture 支持BOOST_TEST(3u == (std::max)(0u, 3u)) 失败BOOST_DATA_TEST_CASE 在 4D 及更高维度的网格上无法编译make 用作左上角数据集报告无效或模棱两可的参数:这可能会破坏向测试模块提供用户定义命令时的现有调用。应采用以下调用约定
-- 之后传递这些命令-- 之前传递示例:调用
test_module --user-arg1=xy --log_level=test_suite
应重写为
test_module --log_level=test_suite -- --user-arg1=xy
__FreeBSD_version 之前不包含 <osreldate.h>(在 1.59 中修复)init_unit_test_suite 中,当使用路径和空格时,程序选项不正确ostream 精度(在 1.59 中修复)argv 的内容BOOST_TEST( ..., per_element() ) 对 vector<string> 的比较BOOST_TEST() 语句BOOST_TEST( 0.0 == 0.0 ) 在 C++11 下失败 (GCC 和 Clang)BOOST_TEST( ..., per_element() ) 错误地要求集合可比较BOOST_TEST 通用断言color_output 的彩色输出list_content 的测试平台列表BOOST_<level>_EQUAL_COLLECTION 文档拼写错误_CrtSetReportFile 可用于重定向内存泄漏报告init_tests_func 记录时发生访问冲突BOOST_TEST_PASSPOINT 的文档内容错误GT 太棒了!vserver 环境中运行时进入无限循环(重复 ##3592)SIGCHLD 始终被视为致命错误BOOST_<level>_GT 描述中的错误(重复 ##3463)BOOST_<level>_CLOSE_FRACTION 的文档不正确<boost/test/exception_safety.hpp> 需要额外的包含BOOST_AUTO_EST_CASE 的拼写错误stderr]]> 的字符串BOOST_AUTO_TEST_CASE_TEMPLATE 中存在内存泄漏