如何在boost中以编程方式获得测试结果

How to get the test outcome programmatically in boost

本文关键字:编程 方式获 测试结果 boost      更新时间:2023-10-16

是否有可能确定升压测试的结果?

。如果boost支持If语句,

if( BOOST_CHECK_SMALL(Fred,0.001))
{
    ...
    printValuesInTest("This value failed:",Fred);
}

如果语句似乎有效,或者我可能有糟糕的一天。

我认为你处理这件事的方法是错误的。单元测试工具通常由测试运行器执行。这类框架的全部意义在于避免像:

这样的事情
// you dont need a unit testing framework to do this! 
if(false_cond())
{
    print_error(...)
    // do other error reporting stuff
}
关键是不要直接运行这些测试,而是使用单元测试框架的宏和命名方案来注册测试用例(每个用例由一个或多个测试断言/条件组成)。这些测试用例有时可以使用测试套件分组到类别和子类别中。然后,测试运行器将运行所有测试并向您提供报告。这样做的主要好处是您可以专注于测试的逻辑,而不是创建、维护和担心测试/错误报告的机制。因此,在使用单元测试框架时,您不应该检查假设是否为真,而应该断言它是真还是假。同样,您应该尝试立即处理错误报告;您应该将任何描述信息交给单元测试框架,这样它就可以正确地报告它。

Boost为如何将测试运行器链接到您正在测试的库提供了多个选项。通常,一旦您使用正确的宏包含了头文件,运行库将实际运行测试运行器,它将运行您的所有测试。您还可以选择使用外部测试运行器。

这里有一个比官方文档更好的介绍来促进单元测试。