首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过Boost.Test宏为doxygen使用哪些预定义

Boost.Test是一个用于C++单元测试的开源库,它提供了一组宏和函数,用于编写和执行测试用例。在使用doxygen生成文档时,可以通过使用Boost.Test的预定义宏来为测试代码生成文档。

以下是一些通过Boost.Test宏为doxygen使用的预定义:

  1. BOOST_AUTO_TEST_CASE:这个宏定义了一个自动化测试用例,可以在doxygen文档中生成测试用例的说明和相关信息。可以使用BOOST_AUTO_TEST_CASE宏来定义多个测试用例。
  2. BOOST_FIXTURE_TEST_CASE:这个宏定义了一个带有测试夹具的测试用例,夹具是在测试用例执行前后进行初始化和清理的对象。可以在doxygen文档中生成测试用例的说明和相关信息。
  3. BOOST_CHECK:这个宏用于检查一个条件是否为真,如果条件为假,则测试失败。可以在doxygen文档中生成检查点的说明和相关信息。
  4. BOOST_REQUIRE:这个宏与BOOST_CHECK类似,但是如果条件为假,则测试立即终止,并标记为失败。可以在doxygen文档中生成检查点的说明和相关信息。
  5. BOOST_CHECK_EQUAL:这个宏用于检查两个值是否相等,如果不相等,则测试失败。可以在doxygen文档中生成检查点的说明和相关信息。
  6. BOOST_CHECK_CLOSE:这个宏用于检查两个浮点数是否接近,如果不接近,则测试失败。可以在doxygen文档中生成检查点的说明和相关信息。
  7. BOOST_CHECK_THROW:这个宏用于检查一个表达式是否抛出了指定的异常,如果没有抛出异常,则测试失败。可以在doxygen文档中生成检查点的说明和相关信息。
  8. BOOST_CHECK_NO_THROW:这个宏用于检查一个表达式是否没有抛出异常,如果抛出了异常,则测试失败。可以在doxygen文档中生成检查点的说明和相关信息。

通过使用这些预定义宏,可以为doxygen生成的文档提供详细的测试用例说明和相关信息,帮助开发人员更好地理解和使用Boost.Test库。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【可测试性实践】C++ 单元测试&代码覆盖率统计

引言 最近在调研C++工程怎么做单元测试和代码覆盖率统计,由于我们工程有使用Boost库,尝试使用Boost.Test来实现单元测试并通过Gcov和Lcov来生成代码覆盖率报告。...License Boost Software License LGPL 平台支持 跨平台 跨平台 跨平台 跨平台 集成 易于和CMake集成 易于和CMake集成 易于和CMake集成 需要手动集成 断言风格 定义...(ASSERT_*) 定义 (REQUIRE, CHECK) 定义 (BOOST_*) 定义 (CPPUNIT_*) 测试发现 自动 自动 自动 手动 Mock支持 需要第三方库 需要第三方库...使用Boost.Test框架实现单元测试 假设你工程使用是Boost库,可以通过Boost.Test来实现单元测试。...BOOST_AUTO_TEST_CASE(test_add) 定义一个测试用例。 使用gcov + lcov统计代码覆盖率 准备工作 确保已经安装以下工具: CMake:用于构建项目。

16110
  • C和C ++ IDE智能代码编辑器:CLion 2022 中文版「winmac」

    2、导航立即导航到符号的声明或上下文用法,在整个项目中按名称搜索类,文件或符号,通过结构和层次视图查找代码库。...3、代码生成添加类成员,覆盖/实现函数,生成构造函数/析构函数,getter / setter,相等,关系和流输出操作符,用语句包装代码块,或者从实际使用中生成声明 - 所有这些都通过简单的键盘快捷键完成...2、以键盘中心的方法为了帮助您专注于代码并提高工作效率,CLion几乎可以为其所有功能,操作和命令提供键盘快捷键。欢迎Vim粉丝安装 Vim-emulation插件。...3、在一个地方你需要的一切您日常开发所需的一切包括:所有流行的VCS(Subversion,Git,GitHub,Mercurial,CVS和Perforce),Google Test,Boost.Test...和Catch框架,用于单元测试,Doxygen和数据库工具。

    1.5K20

    简单C++单元测试框架(支持一键切到GTest或Boost.Test)

    这个单元测试框架本是用于之前规划的C++协程框架使用的。 虽然已经有比较成熟的单元测试框架GTest、Boost.Test等等,但是要引入它们都会倒入很多文件。...然后后跟一个全局注册变量,把suite名称、case名称和函数指针传进来 > test_case_base g_var(suite名称, case名称, &function_name); 最后跟上函数定义...(其他的可以以后加嘛 ( * ^ _ ^ * ) ) 但是毕竟GTest和Boost.Test功能比较完善(特别是Boost.Test还自带内存泄露检测),于是就希望如果环境具备的情况下,能够不改一行代码直接切换到成熟的测试框架...boost这个比较麻烦,因为boost的接口方式不一样,甚至在使用静态库的时候有自己的入口函数 简单地说就是分支比较多 在入口处要判断是静态库还是动态库,有没有使用boost.test内置的函数(详见...suite和case的方式有变化(详见: https://github.com/owt5008137/libcopp/tree/master/test/frame/test_manager.cpp ) 还是定义的部分变更

    1.2K10

    简单C++单元测试框架(支持一键切到GTest或Boost.Test)

    这个单元测试框架本是用于之前规划的C++协程框架使用的。 虽然已经有比较成熟的单元测试框架GTest、Boost.Test等等,但是要引入它们都会倒入很多文件。...; 然后后跟一个全局注册变量,把suite名称、case名称和函数指针传进来 test_case_base g_var(suite名称, case名称, &function_name); 最后跟上函数定义...(其他的可以以后加嘛 ( * ^ _ ^ * ) ) 但是毕竟GTest和Boost.Test功能比较完善(特别是Boost.Test还自带内存泄露检测),于是就希望如果环境具备的情况下,能够不改一行代码直接切换到成熟的测试框架...boost这个比较麻烦,因为boost的接口方式不一样,甚至在使用静态库的时候有自己的入口函数 简单地说就是分支比较多 在入口处要判断是静态库还是动态库,有没有使用boost.test内置的函数(详见...添加suite和case的方式有变化(详见: https://github.com/owent/libcopp/tree/master/test/frame/test_manager.cpp ) 还是定义的部分变更

    55430

    面向 C++ 的现代 CMake 教程(四)

    要设置任何选项,只需按照示例通过调用 set() 并将其名称前缀 DOXYGEN_。...让我们看看如何通过添加一个新的来扩展我们的Doxygen.cmake文件以使用它,如下所示: chapter-10/02-doxygen-nice/cmake/Doxygen.cmake (片段) macro...,允许项目目标直接被其他项目重用 通过配置文件创建可发现的包,这些文件封装了目标导出文件以及作者定义的特定于包的 CMake 和函数 这些功能非常强大,因为它们节省了很多时间,并简化了以这种方式准备的项目使用...它被视为一个包定义,负责提供任何包函数和,检查要求,查找依赖项,并包含目标导出文件。...这可以通过调用CMakeFindDependencyMacro助手中的find_dependency()来实现。我们在第七章中学习了如何使用它,使用 CMake 管理依赖项。

    59600

    老外的嵌入式编程规范(值得一看)

    这是C语言本身保留的 对于严格的模块私有函数,使用prv_ name前缀 对于包含下划线_ char的变量/函数//类型,只能使用小写字母 左花括号总是与关键字(for, while, do, switch...使用动态内存分配代替标准C malloc和自由函数,或者如果库/项目提供了自定义内存分配,使用它的实现看看LwMEM,一个自定义内存管理库。...不要使用forceRedraw 对于C标准库的包含文件,请始终使用。例如,# include 对于自定义库,请始终使用""。...---- 总是使用而不是文字常量,特别是对于数字 所有的必须是全大写的,并带有下划线_字符(可选),除非它们被明确标记为function,将来可能会被常规函数语法替换 /* OK */ #define...对变量、函数和结构/枚举使用doxygen支持的文档样式 经常使用\作为doxygen,不要使用@ 始终使用5x4空格(5个制表符)作为文本行开始的偏移量 /** * \brief

    1.8K20

    值得一看:老外的嵌入式编程规范

    这是C语言本身保留的 对于严格的模块私有函数,使用prv_ name前缀 对于包含下划线_ char的变量/函数//类型,只能使用小写字母 左花括号总是与关键字(for, while, do, switch...使用动态内存分配代替标准C malloc和自由函数,或者如果库/项目提供了自定义内存分配,使用它的实现看看LwMEM,一个自定义内存管理库。...不要使用forceRedraw 对于C标准库的包含文件,请始终使用。例如,# include 对于自定义库,请始终使用""。...---- 总是使用而不是文字常量,特别是对于数字 所有的必须是全大写的,并带有下划线_字符(可选),除非它们被明确标记为function,将来可能会被常规函数语法替换 /* OK */ #define...对变量、函数和结构/枚举使用doxygen支持的文档样式 经常使用\作为doxygen,不要使用@ 始终使用5x4空格(5个制表符)作为文本行开始的偏移量 /** * \brief

    1.2K40

    这才是理想中的 C 语言编程规范

    这是C语言本身保留的 对于严格的模块私有函数,使用prv_ name前缀 对于包含下划线_ char的变量/函数//类型,只能使用小写字母 左花括号总是与关键字(for, while, do, switch...使用动态内存分配代替标准C malloc和自由函数,或者如果库/项目提供了自定义内存分配,使用它的实现看看LwMEM,一个自定义内存管理库。...不要使用forceRedraw 对于C标准库的包含文件,请始终使用。例如,# include 对于自定义库,请始终使用""。...总是使用而不是文字常量,特别是对于数字 所有的必须是全大写的,并带有下划线_字符(可选),除非它们被明确标记为function,将来可能会被常规函数语法替换 /* OK */ #define MY_MACRO...对变量、函数和结构/枚举使用doxygen支持的文档样式 经常使用\作为doxygen,不要使用@ 始终使用5x4空格(5个制表符)作为文本行开始的偏移量 /** * \brief

    2.5K20

    CMake 秘籍(七)

    但是,我们可以使用add_custom_target来执行任意操作,这是我们在本食谱中利用的机制。需要注意的是,我们需要确保系统上存在构建文档所需的工具(在本例中 Doxygen 和 Perl)。...这是一种“显式优于隐式”的模式,我们认为这是良好的 CMake 实践:不要使用模块包含来执行类似(或函数)的操作。...我们通过使用函数而不是来实现add_doxygen_doc,以限制变量定义的作用域和可能的副作用。...在这种情况下,函数和都可以工作(并且会产生相同的结果),但我们建议除非需要修改父作用域中的变量,否则应优先使用函数而不是。...实现了便利函数doxygen_add_docs,它将作为我们在本食谱中介绍的

    16200

    面向 C++ 的现代 CMake 教程(五)

    我们将通过回顾章节列表、回顾其内容,并选择其中描述的技巧和工具来开始规划,以构建我们的计算应用程序: 第1章,CMake 的初步步骤: 第一章我们提供了关于 CMake 的基本信息——如何安装它以及如何使用其命令行构建准备好的项目...正如我们所知,CMake 允许我们使用 Doxygen 来自动生成文档。我们将通过添加 doxygen-awesome-css 样式来对其进行刷新设计。...图 12.4 显示了哪些项目文件参与构建。...然后我们提供了一个AddTests,该将准备一个测试目标、启用覆盖和内存检查。让我们详细看看它是如何工作的。 准备覆盖模块 多个目标添加覆盖是一个有点棘手的过程,因为它包括几个步骤。...它分为两个类别: 技术文档(接口、设计、类和文件) 一般文档(其他不如此技术性的文档) 正如我们在第十章中看到的,生成文档,很多技术文档可以通过使用 Doxygen 在 CMake 中自动生成

    14800

    文档代码同源

    比如说,对于产品某个模块的要求,必须使用什么标准技术或模块,或者必须满足下一代的复用等。至于洁癖,团队没有定义团队的写法,那么冲突修改是必然的。...代码中所有的修改都可归这三类,更进一步,大部分应该是前两类。开源世界有一个很好用的工具是Doxygen。...从而强调需求的定义作用,主动维护需求的前后一致。 如模块中编写时,说明实现了哪些需求。 ? ? 这些都是超文本标签,点击后迅速转到需求定义处可查看。 ?...下载最新的源代码,使用Doxygen编译,则可得到最新的文档。 3、补充说明 文档代码同源的思路,可解决实践中的文档代码不一致的问题,但这不是最终目的。长期坚持,达到一个良好的开发习惯和开发氛围。...如果内部有需求管理工具的公司,应该都可以将需求导出成excel,然后通过工具转换成doxygen接受的文档。 2.内部的检查一定要每天坚持,这才是核心中的核心。

    51540

    使用VA助手如何快速添加注释(按doxygen注释规范)

    首先,关于VA助手的破解安装教程,请参考:VS2015 Visual Assist X 破解版安装教程 此处分享一下我在工程中使用VA助手进行快速注释的小技巧,感兴趣的小伙伴可以借鉴下。...第八步:对类型(macro)的注释模板,见图9. ?.../// @brief 导出符号定义 用法:简单举个例子,比如我们对于filter_t.h的头文件想给出注释,我们只要在VS中, 输入「//Header」,即可得到如下的注释行。...那么,我们为什么要进行按照doxygen注释规范来进行注释呢,这样做有什么好处呢? 我们可以使用上述的注释,快速生成如下图所示的库说明文档。 ?...至于doxygen的具体使用方法,已经在【3D视觉工坊】知识星球中给出了介绍,如果愿意学习了解的同学,可以前往查看。 上述内容,如有侵犯版权,请联系作者,会自行删文。

    3.8K20

    静态逆向反汇编获取函数调用关系链

    例如doxygen就是通过分析源码来获取函数调用关系链的,但是却存在一个缺点---需要依赖于源码,而且在跨模块的调用关系的获取上存在缺陷。...最后,介绍虚函数调用的具体情况: 虚函数基本概念的描述:作为面向对象最具特色的概念,对象的多态性需要通过虚表和虚表指针来完成,虚函数指针被定义在对象首地址的前4个字节处,因此虚函数必须作为成员函数使用。...在C++中,使用关键字virtual声明函数虚函数,当类中定义有虚函数时,编译器会将该类中所有虚函数的首地址保存在一张地址表中,这张表被称为虚函数地址表,简称虚表。...如图5所示:包含虚函数的类的定义 图5 int nsize = sizeof(CVirtual);大小8字节数据,多出了4字节数据,这4字节数据用于保存虚表指针。...这种通过虚表间接寻址访问的情况只有在使用对象的指针或者引用来调用虚函数的时候才会出现。当直接使用对象调用自身的虚函数时,没有必要查表访问。

    5.1K00

    利用Doxygen生成代码文档

    doxygen的安装 使用apt安装doxygen sudo apt install doxygen 使用最新版的二进制安装(该种方式想对于第一种,可安装最新的版本) doxygen的下载页面: https...解压二进制包后,进入包文件夹,使用下面的命令安装。 sudo make install makefile中没有安装doxywizard。 我们可以手动拷贝到/usr/local/bin/中。...或者直接使用 doxywizard Doxyfile 常用的参数配置 打开调用关系图 图片 显示效果如下: 图片 上图显示了该函数调用了哪些函数,然后又被什么函数调用了。...当JAVADOC_AUTOBRIEF参数设置YES时,会将下面的注释内容直接当成简介描述。 /** * A test class....doxygen 也可以在doxywizard里点击运行doxygen来生成文档。 图片

    1.7K40

    30分钟轻松搞定代码瘦身

    方法一:通过代码覆盖率 准备开始做这件事的时候,第一个想到的方法是代码覆盖率,觉得最直接的方式是将该sdk的功能用例全部跑一遍,通过EC和EM看究竟哪些路径会被覆盖到,然后删除未被覆盖到的路径。...结论:该方法不适合初期,代码量大,范围很广的时候做,比较适合已经确定有哪些file,有哪些class,细究method内部实现时使用。 所以该方法被否决。...方法二:通过静态扫描代码之间的调用关系: 总共安装试用了2款工具,只是用了比较浅的功能,以我的目的需求,我要获得整个工程下面的所有的代码之间的调用关系,对比见下图: ?...通过以上对比,我毫不犹豫的选择了doxygen+graphviz的组合,满足我当前的需求。 understand官网:https://scitools.com/,有兴趣的同学可自行了解。...3.5资源冗余 资源冗余让我头疼了一阵,资源,尤其是图片,原理很简单就是扫描代码中哪些资源又被调用,哪些没被调用,有没有什么好的工具可以使用呢?

    1.4K90

    CLion 2022 Mac中文激活版(C和C ++ IDE智能代码编辑器)

    完全了解您的代码,它可以通过智能代码补全、即时导航和可靠的重构提高您的生产效率。...内置工具和集成CLion 不仅仅是一款编辑器,它提供强大的调试器和动态分析工具,可以轻松调查并解决问题;内置的 Google Test、Boost.Test 和 Catch 可以进行单元测试,同时默认支持许多常见的...实时代码分析使用 CLion 书写漂亮正确的代码 所有支持的语言提供的静态分析(包括 DFA)可以在您输入时立即高亮显示代码中的警告和错误,并提出快速修复建议。...使用重构快速改善和整理代码。定制编辑器择一个默认的编辑器主题或根据自己的偏好自定义主题。 采用以键盘中心的方法,并选择你最喜欢的键盘映射,或者轻松创建自己的键盘映射。

    73210

    【Kotlin】函数 ⑦ ( 内联函数 | Lambda 表达式弊端 | “ 内联 “ 机制避免内存开销 - 将使用 Lambda 表达式作为参数的函数定义内联函数 | 内联函数本质 - 替换 )

    ---- 1、Lambda 表达式弊端 Lambda 表达式弊端 : Lambda 表达式 的 灵活使用 , 是以 牺牲内存开销代价的 ; 在 Java 虚拟机中 , Lambda 表达式 是以 实例对象...Lambda 表达式 作为参数的函数 定义 inline 内联函数 , Java 虚拟机就 不会再为 lambda 表达式 在堆内存中 创建 实例对象 了 , 这样就 避免了 Lambda 表达式...的内存开销 ; 3、内联函数本质 - 编译时替换 内联函数使用 : 在使用 Lambda 表达式的时候 , Kotlin 编译器直接将 inline 内联函数 的 函数体 直接拷贝到 使用位置 ; 内联函数...类似于 C 语言中的 预编译指令 定义 , 在编译时直接替换拷贝定义内容 ; Kotlin 中的 内联函数 也是一种 编译时 进行 替换的操作 ; 4、内联函数不能递归 内联函数不能递归 : 如果...将函数 定义 内联函数 , 则该函数 不能进行递归操作 , 递归操作 会导致 函数体的 无限复制粘贴 , 编译器会报警 ; 二、普通函数代码示例 ---- 代码示例 : 下面的代码中 studentDoSomething

    1.3K10

    Orbbec Gemini 相机SDK 适配笔记.2

    id=64 SDK的链接位置 对于我们单纯的使用相机来讲,获得数据流是最重要的事情 官方提供的是OpenNI的接口,接下来就探索一下相关的资源,接着就是在ARM的设备上面的安装使用。...sudo apt-get install doxygen - GraphViz sudo apt-get install graphviz 至于编译的时候就更加的简单了~在OpenNI...- ARM_CXX= - ARM_STAGING= 先定义环境变量...https://structure.io/openni 我找了一下OpenNI的官网,发现其实是有第二代的SDK 这个里面有个SDK叫结构SDK,也不知道能不能用 也可以注册一个开发者,来下载额外的...继续读: 安装SDK的说法,在编写我们的RGBD应用的时候,在编写的时候都要像这样: 加上第二个这样的头文件 头文件位置在此 这个是我从OpenNI的头文件里面找到的其它头 这里的写的是支持的平台

    1.3K30
    领券