ROS-gtest使用

ROS-gtest使用

1.官网参考

https://github.com/google/googletest

2.在包名子目录创建 test/test_*.cpp,如


内容如下:

#include <tf/transform_listener.h>

#include "aoa_follow.h"

int val2 = 2 ;

TEST (ycy, mytest)
{
EXPECT_TRUE ( true );
ASSERT_EQ ( 2 ,val2);
}

TEST (zy, zytest)
{
EXPECT_TRUE ( true );
}
int main ( int argc, char ** argv)
{
testing::InitGoogleTest ( & argc,argv);
ros::init (argc,argv, "tester" );
ros::NodeHandle nh;

return RUN_ALL_TESTS ();
}


3.修改原有的CMakeLists.txt后面添加,如下

#############
## Testing ##
#############

if(CATKIN_ENABLE_TESTING)
find _ package(rostest REQUIRED)
add _ rostest _ gtest(aoa_follow_test test/alaunch.launch test/test_aoa_follow.cpp)
target _ link _ libraries(aoa_follow_test ${catkin_LIBRARIES} ${GTEST_LIBRARIES})
endif()


4.package.xml文件添加

< build_depend > gtrostestest </ build_depend >
< build_depend > gtest </ build_depend >
< build_export_depend > rostest </ build_export_depend >
< build_export_depend > gtest </ build_export_depend >
< exec_depend > rostest </ exec_depend >
< exec_depend > gtest </ exec_depend >


5.运行测试

(1)自动运行全部测试
在build文件夹下运行命令make run_tests,完成二进制测试程序生成,同时会自动调用test目录下的所欲.test文件。

  测试通过,则类似如下



(2)运行单个测试
catkin_make run_tests<TAB><TAB>

如测试不通过,则错误类似如下



(3)测试结果总结
catkin_test_results build/test_results
cat



(base) straw@straw-ASUS-TUF-Gaming-F15-FX507VV-FX507VV:~/catkin_ws$ catkin_make Base path: /home/straw/catkin_ws Source space: /home/straw/catkin_ws/src Build space: /home/straw/catkin_ws/build Devel space: /home/straw/catkin_ws/devel Install space: /home/straw/catkin_ws/install #### #### Running command: "cmake /home/straw/catkin_ws/src -DCATKIN_DEVEL_PREFIX=/home/straw/catkin_ws/devel -DCMAKE_INSTALL_PREFIX=/home/straw/catkin_ws/install -G Unix Makefiles" in "/home/straw/catkin_ws/build" #### -- Using CATKIN_DEVEL_PREFIX: /home/straw/catkin_ws/devel -- Using CMAKE_PREFIX_PATH: /opt/ros/melodic -- This workspace overlays: /opt/ros/melodic -- Found PythonInterp: /usr/bin/python3 (found suitable version "3.6.9", minimum required is "2") -- Using PYTHON_EXECUTABLE: /usr/bin/python3 -- Using Debian Python package layout -- Using empy: /usr/bin/empy -- Using CATKIN_ENABLE_TESTING: ON -- Call enable_testing() -- Using CATKIN_TEST_RESULTS_DIR: /home/straw/catkin_ws/build/test_results -- Found gtest sources under '/usr/src/googletest': gtests will be built -- Found gmock sources under '/usr/src/googletest': gmock will be built -- Found PythonInterp: /usr/bin/python3 (found version "3.6.9") -- Using Python nosetests: /usr/bin/nosetests-2.7 -- catkin 0.7.29 -- BUILD_SHARED_LIBS is on -- BUILD_SHARED_LIBS is on -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- ~~ traversing 13 packages in topological order: -- ~~ - jsk_recognition (metapackage) -- ~~ - sound_classification -- ~~ - audio_to_spectrogram -- ~~ - jsk_recognition_msgs -- ~~ - my_package -- ~~ - checkerboard_detector -- ~~ - jsk_recognition_utils -- ~~ - imagesift -- ~~ - jsk_perception -- ~~ - jsk_pcl_ros_utils -- ~~ - jsk_pcl_ros -- ~~ - resized_image_transport -- ~~ - yolo_ros -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- +++ processing catkin metapackage: 'jsk_recognition' -- ==> add_subdirectory(jsk_recognition-master/jsk_recognition) -- +++ processing catkin package: 'sound_cla
最新发布
03-22
### Catkin_make 构建过程中的常见问题及日志分析 在使用 `catkin_make` 进行 ROS Melodic 的构建过程中,可能会遇到多种问题。以下是常见的构建问题及其解决方案: #### 1. **找不到 toplevel.make 文件** 当执行 `catkin_make` 命令时,如果提示无法找到 `toplevel.make` 文件,则可能是由于源码目录下的 `CMakeLists.txt` 被删除或者未正确初始化工作空间。 解决方法如下: - 如果 `src` 目录下缺少 `CMakeLists.txt` 文件,可以通过运行以下命令重新创建并链接到默认的 `toplevel.cmake` 文件[^5]: ```bash cd ~/catkin_ws/src catkin_init_workspace ``` #### 2. **多线程/多核编译设置错误** 为了提高编译效率,可以在 `catkin_make` 中加入 `-jN` 参数来启用多线程或多核编译。然而,如果不合理地增加核心数可能导致系统资源耗尽甚至崩溃。 推荐做法是根据计算机的核心数量调整参数值。例如,对于四核处理器可尝试以下命令[^3]: ```bash catkin_make -j4 ``` 此操作实际上会被分解成两步执行:先调用 `cmake_check_build_system` 检查构建系统状态;再通过 `make -j4` 实现具体目标的并发处理。 #### 3. **依赖包缺失引发的错误** 有时因某些必要的软件包尚未安装而中断整个构建流程。这种情况下应该仔细阅读终端打印出来的错误消息,并按照指示补充相应的库文件或工具链版本。 比如部署像 Google Cartographer 这样的复杂项目时就需要额外注意其特定需求[^2]。确保所有必需组件都已就绪后再启动正式组装程序。 另外值得注意的是,默认路径可能不具有写权限从而阻碍正常进程推进。此时需赋予适当的操作许可权限给定脚本文件以便顺利开展后续动作[^4]: ```bash sudo chmod +x /opt/ros/melodic/bin/catkin_make ``` 最后关于查看详细的构建日记记录方面,一般可以直接观察标准输出流上的即时反馈信息即可获取足够的调试线索。当然也可以重定向这些数据存储至单独的日志文档里供离线审查之用: ```bash catkin_make &> build.log ``` 以上就是围绕着 `catkin_make` 在 ROS Melodic 平台之上可能出现的一些典型状况以及对应的处置策略概述。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值