ros2
test_error
ai_generated
true
colcon test: No test output files found in 'build/my_package/test_results'
ID: ros2/colcon-test-missing-test-output
85%Fix Rate
82%Confidence
1Evidence
2024-01-10First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| ROS2 Humble | active | — | — | — |
| ROS2 Iron | active | — | — | — |
| ROS2 Rolling | active | — | — | — |
Root Cause
The test runner (e.g., pytest, gtest) did not produce output files in the expected directory because tests failed to run, were skipped, or the CMake/ament test configuration did not set up output generation correctly.
generic中文
测试运行器(如pytest、gtest)未在预期目录中生成输出文件,因为测试未能运行、被跳过,或CMake/ament测试配置未正确设置输出生成。
Official Documentation
https://docs.ros.org/en/humble/Tutorials/Intermediate/Testing/Testing.htmlWorkarounds
-
85% success Check if the test executable exists and can run: 'colcon test --packages-select my_package' and look for error messages in the console output. If tests are C++ gtest, ensure 'add_rostest' or 'ament_add_gtest' is used in CMakeLists.txt.
Check if the test executable exists and can run: 'colcon test --packages-select my_package' and look for error messages in the console output. If tests are C++ gtest, ensure 'add_rostest' or 'ament_add_gtest' is used in CMakeLists.txt.
-
90% success Rebuild the package with '--cmake-args -DBUILD_TESTING=ON' and then run tests again. This ensures test targets are built.
Rebuild the package with '--cmake-args -DBUILD_TESTING=ON' and then run tests again. This ensures test targets are built.
-
80% success For Python packages, ensure 'setup.py' or 'setup.cfg' has a 'test' section pointing to the correct test directory, and run 'colcon test' from the workspace root.
For Python packages, ensure 'setup.py' or 'setup.cfg' has a 'test' section pointing to the correct test directory, and run 'colcon test' from the workspace root.
中文步骤
检查测试可执行文件是否存在并可运行:'colcon test --packages-select my_package',并在控制台输出中查找错误消息。如果是C++ gtest,确保在CMakeLists.txt中使用了'add_rostest'或'ament_add_gtest'。
使用'--cmake-args -DBUILD_TESTING=ON'重新构建包,然后重新运行测试。这确保测试目标被构建。
对于Python包,确保'setup.py'或'setup.cfg'中有指向正确测试目录的'test'部分,并从工作区根目录运行'colcon test'。
Dead Ends
Common approaches that don't work:
-
Running 'colcon test' with '--event-handlers console_direct+' to see all output, but still no test results
80% fail
This only increases verbosity; it does not fix the underlying issue of tests not producing output files.
-
Manually creating the test_results directory to satisfy colcon
95% fail
The directory must contain actual test output files; an empty directory does not resolve the error.