万物看其本质。

1. 关于如何在ros2下写测试用例,请参照官网。

Writing Basic Tests with C++ with GTest — ROS 2 Documentation: Humble documentation

2. 在写完测试用例之后,进行编译,下面这个命令是编译指定包的debug版本同时编译测试用例。

colcon build --packages-select <your package name> --cmake-args -DBUILD_TESTING=ON -DCMAKE_BUILD_TYPE=Debug

 3. 在编译完之后

       在 workspace/build/<your package name>/  目录下应该能找到测试程序。

 4. 在ros2的官方教程里要想调试测试用例,是使用终端gdb调试,恩,不是高手,太麻烦,特别是调试大型的程序的测试的时候,比如 a*规划,还是用vscode断点调试方便。

这个时候其实就用vscode的调试功能直接调试生成的测试程序就可以。

在vscode 调试的launch.json中增加以下内容

        {
            "name": "test_a_star",
            "type": "cppdbg",
            "request": "launch",
            "program": "/path/to/your/test/file",
            "args": [],
            "stopAtEntry": false,
            "cwd": "/",
            "environment": [],
            "externalConsole": false,
            "setupCommands": [
                {
                    "description": "为 gdb 启动整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                },
                {
                    "description": "将反编译风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": false
                }
            ]
        },

只需要把上面的name和program改成你自己的,其他的不用动。

然后就可以开心的在vscode里面单步调试,断点调试了。

        

Logo

聚焦RDK与具身智能,汇集机器人开发教程、开源案例和技术交流

更多推荐