Skip to main content

13. 测试集成 — gtest + colcon test

概述​

本示例通过 demo_xmake_testing 包,演示如何在 xmake 项目中集成 gtest 单元测试,并与 colcon test 兼容。

ROS 2 知识点:ament 测试框架、gtest 集成、节点单元测试

xmake 知识点:xmake test target、colcon test 兼容

ROS 2 知识​

测试最佳实践​

  • 纯逻辑测试:不依赖 ROS 运行时的单元测试
  • 节点测试:验证节点创建、参数声明等 ROS 功能
  • 集成测试:多节点协作测试(通常用 launch_testing)

示例代码​

项目结构​

demo_xmake_testing/
├── xmake.lua
├── package.xml
├── src/
│ ├── calculator.hpp # 可测试的类
│ ├── calculator.cpp
│ └── calculator_main.cpp
└── test/
├── test_calculator.cpp # 纯逻辑测试
└── test_node.cpp # 节点测试

xmake.lua 构建配置​

target("demo_xmake_testing")
set_kind("static")
add_files("src/calculator.cpp")
add_includedirs("src", {public = true})
add_ros_deps("rclcpp")

target("calculator_node")
set_kind("binary")
set_installdir("lib/demo_xmake_testing")
add_files("src/calculator_main.cpp")
add_deps("demo_xmake_testing")
add_ros_deps("rclcpp")

构建与运行​

colcon build --packages-select demo_xmake_testing
colcon test --packages-select demo_xmake_testing
colcon test-result --verbose

xmake 知识点小结​

特性说明
add_deps()引用同包内的其他 target
库 + 可执行文件将逻辑封装为库,方便测试

内容扩展​

以下资源可帮助你深入了解本章涉及的技术领域。

开源项目​

工具​

文档与教程​

参考​