当前位置: 首页 > article >正文

gtest with ros

ros test 基本是基于gtest.

如何编写测试模块

cmakelists.txt

if (CATKIN_ENABLE_TESTING)
  catkin_add_gtest(test_mongo_roscpp test/test_mongo_ros.cpp)
  target_link_libraries(test_mongo_roscpp warehouse_ros)
endif ()

CATKIN_ENABLE_TESTING 是catkin 专门对test 内容的编译选项开关, 可以通过catkin_make -DCATKIN_ENABLE_TESTING 进行编译选项控制

package.xml

 <!-- gtest依赖项声明方式1 -->
<test_depend>gtest</test_depend>

 <!-- gtest依赖项声明方式1 -->
<build_export_depend>gtest</build_export_depend>

test 文件所在目录

build/PKG_NAME/

如何编译

test 模块有两个关键词, tests, run_tests

tests 指仅编译

run_tests 指编译+执行run

test 好像是执行ctest,一般不用

方式1: make 

cd build                    ## build 目录存放test 内容。这一层编译所有包

make tests -j8 -l8      ## only build

make run_tests -j8 -l8   ## build + run

更高粒度,进入目录

cd build/foo

make run_tests_<TAB><TAB>

方式2:catkin_make

Running unit tests — catkin 0.5.90 documentation

Unit Testing — ROS Training For Industry 0.1 documentation

cd YOUR_WS

catkin_make tests                   ## onlly build

catkin_make tests <YOUR_PKG_NAME>   ## only build specific pkg test

catkin_make run_tests           ## build + run

catkin_make run_tests <YOUR_PKG_NAME>  ## build + run specific pkg test

catkin_make run_tests_pkgname

catkin_make run_tests_pkgname_gtest_mytest

catkin_make run_tests_<TAB><TAB>

测试框架tips

https://google.github.io/googletest/reference/assertions.html

Google包装了一系列EXPECT_*ASSERT_*的宏,区别是:

① EXPECT_*失败时,测试用例继续往下执行;

② ASSERT_*失败时,直接在当前函数中返回,当前函数中ASSERT_*后面的语句将不会执行;

测试用例结束后,总结test 结果

catkin_test_results build/test_results


http://www.kler.cn/a/519428.html

相关文章:

  • 一次端口监听正常,tcpdump无法监听到指定端口报文问题分析
  • MATLAB绘图:随机彩色圆点图
  • 引领产品创新: 2025 年 PM 效能倍增法则
  • CentOS 7 安装fail2ban hostdeny方式封禁ip —— 筑梦之路
  • 如何在data.table中处理缺失值
  • 蓝桥杯之c++入门(一)【第一个c++程序】
  • Qwen2-VL:在任何分辨率下增强视觉语言模型对世界的感知 (大型视觉模型 核心技术 分享)
  • AutoMapper的使用
  • stm8s单片机(三)时钟系统与时钟切换
  • 【工具】CountUp.js
  • 国产编辑器EverEdit - 目录树
  • SSH代理實用指南
  • 【Matlab高端绘图SCI绘图模板】第003期 绘制面积填充图
  • 【AI非常道】二零二五年一月,AI非常道
  • 数据结构——概念与时间空间复杂度
  • 【Java】面试中遇到的两个排序
  • 策略模式 - 策略模式的使用
  • 【Leetcode刷题记录】18.四数之和
  • HTML5和CSS3拔高
  • mysql数据库启动出现Plugin ‘FEEDBACK‘ is disabled.问题解决记录
  • 08.OSPF 特殊区域及其他特性
  • 嵌入式音视频开发——视频篇(一)
  • 【10】如何辨别IOS AP镜像
  • Ubuntu安装GitLab
  • 解锁FPGA的故障免疫密码
  • 【软件设计师中级】-笔记缩减版本-程序设计语言基础