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
库 + 可执行文件将逻辑封装为库,方便测试

内容扩展

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

开源项目

工具

文档与教程

参考