Skip to content

测试概览

测试是保证 ROS 2 软件质量的关键实践。ROS 2 构建系统集成了多种测试框架,支持从单元测试到集成测试的完整测试体系,并可在 CI/CD 中自动运行。

ROS 2 中的测试通常分为以下几类:

单元测试用于验证单个函数或类的行为是否符合预期。ROS 2 支持多种语言的单元测试框架:

  • C++ 测试:使用 Google Test(gtest)框架,通过 ament_add_gtest 宏集成到 CMake 构建中。
  • Python 测试:使用 Python 标准库 unittest 或 pytest 框架。

集成测试用于验证多个节点协同工作时的行为。ROS 2 提供了 launch_testing 框架,允许在测试中启动完整的节点图,然后对各节点的输入输出进行断言。

ROS 2 的官方构建农场(build farm)会在多个平台和发行版上自动构建和测试所有提交的包,确保跨平台兼容性。

使用 colcon 运行测试:

Terminal window
# 运行所有包的测试
colcon test
# 运行单个包的测试
colcon test --packages-select <package_name>
# 运行测试并输出详细结果
colcon test --event-handlers console_direct+

测试结果默认输出到 build/<package_name>/test_results/ 目录下,可使用 colcon test-result 查看汇总。

更多详情请参阅 ROS 2 官方测试文档。