ROS测试
前言
- 基础
参考
ROSTest 学习
- rostest是roslaunch的扩展,允许跨越多节点进行测试!文件格式可以是.test或.launch,非常建议将测试launch文件嵌入到普通launch文件中
编写测试
前期概念
- 两种层次上的测试:一种是节点层级的测试,主要测试节点与节点之间的交互是否有效,如消息订阅,服务请求等;另一种是代码层级的测试,主要测试节点内部具体执行的程序的有效性,如特定算法。
- 实际上需要编写一些测试节点来运行测试,rostest基于gtest框架
编写
构造描述文件
- CMakeLists
if(CATKIN_ENABLE_TESTING)
find_package(rostest REQUIRED)
add_rostest_gtest(tests_mynode test/mynode.test src/test/test_mynode.cpp [more cpp files])
target_link_libraries(tests_mynode ${catkin_LIBRARIES})
endif()
- Package.xml
- launch file
<launch>
<node pkg="mypkg" type="mynode" name="mynode" />
<test test-name="test_mynode" pkg="mypkg" type="test_mynode" />
</launch>
launch 文件会启动节点后立即启动测试节点