code_coverage package from code_coverage repocode_coverage |
|
Package Summary
Tags | No category tags. |
Version | 0.4.4 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mikeferguson/code_coverage.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2023-08-29 |
Dev Status | DEVELOPED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Michael Ferguson
Authors
- Michael Ferguson
code_coverage
ROS package to run coverage testing
Examples
- The robot_calibration package uses this to generate coverage for C++ code using Travis-CI and Codecov.io
Usage
To use this with your ROS package:
- Add code_coverage as a test depend in your package.xml
- Update your CMakeLists.txt, in the testing section add the following. NOTE the order of test targets and coverage macros:
if(CATKIN_ENABLE_TESTING AND ENABLE_COVERAGE_TESTING)
find_package(code_coverage REQUIRED)
# Add compiler flags for coverage instrumentation before defining any targets
APPEND_COVERAGE_COMPILER_FLAGS()
endif()
# Add your targets here
if (CATKIN_ENABLE_TESTING)
# Add your tests here
# Create a target ${PROJECT_NAME}_coverage_report
if(ENABLE_COVERAGE_TESTING)
set(COVERAGE_EXCLUDES "*/${PROJECT_NAME}/test*" "*/${PROJECT_NAME}/other_dir_i_dont_care_about*")
add_code_coverage(
NAME ${PROJECT_NAME}_coverage_report
DEPENDENCIES _run_tests_${PROJECT_NAME}
)
endif()
endif()
-
Note: The variable
COVERAGE_EXCLUDES
must have some content! -
Now you can build and run the tests (you need a debug build to get reasonable coverage numbers):
- if using CATKIN_MAKE:
catkin_make -DENABLE_COVERAGE_TESTING=ON -DCMAKE_BUILD_TYPE=Debug
catkin_make -DENABLE_COVERAGE_TESTING=ON -DCMAKE_BUILD_TYPE=Debug PACKAGE_NAME_coverage_report
- if using CATKIN_TOOLS:
catkin config --cmake-args -DENABLE_COVERAGE_TESTING=ON -DCMAKE_BUILD_TYPE=Debug
catkin build
catkin build PACKAGE_NAME -v --no-deps --catkin-make-args PACKAGE_NAME_coverage_report
- The output will print where the coverage report is located
Python rostest Support
While the C++ interface and Python-based unit tests require no modification to get coverage information, Python-based nodes run from rostest launch files need a bit of additional instrumentation turned on:
<launch>
<!-- Add an argument to the launch file to turn on coverage -->
<arg name="coverage" default="false"/>
<!-- This fancy line forces nodes to generate coverage -->
<arg name="pythontest_launch_prefix" value="$(eval 'python-coverage run -p' if arg('coverage') else '')"/>
<!-- This node will NOT generate coverage information -->
<node pkg="example_pkg" name="publisher_node" type="publisher_node.py" />
<!-- But this node WILL generate coverage -->
<node pkg="example_pkg" name="subscriber_node" type="subscriber_node.py"
launch-prefix="$(arg pythontest_launch_prefix)" />
<!-- The test can also generate coverage information if you include the launch-prefix -->
<test time-limit="10" test-name="sample_rostest" pkg="example_pkg" type="sample_rostest.py"
launch-prefix="$(arg pythontest_launch_prefix)" />
</launch>
In the CMakeLists, you will need to pass this argument:
add_rostest(example_rostest.test ARGS coverage:=ENABLE_COVERAGE_TESTING)
Changelog for package code_coverage
0.4.4 (2020-10-29)
- Added python3-coverage support and error if python*-coverage is missing. (#27)
- Contributors: Stefan Fabian
0.4.3 (2020-07-30)
- Use multiple python coverage files (#23) Co-authored-by: hslusarek <<h.slusarek@pilz.de>>
- add note that robot_calibration uses this package
- fix #25
- Add new report formats
(#24)
- Add html report format
- Add console report format
- Add '--include' and '--omit' flag to python-coverage commands
- Contributors: Alexander Gutenkunst, Michael Ferguson, hslusarek
0.4.2 (2020-05-05)
- Add option for specifying extra flags to genhtml (#20) This modification allows you to add flags to the genhtml step so that you can do things like output the lcov report with demangled C++ function names, e.g.: catkin_make -DGENHTML_EXTRA_FLAGS="--demangle-cpp" -DENABLE_COVERAGE_TESTING=ON -DCMAKE_BUILD_TYPE=Debug test1_coverage_report
- Add catkin_make build step in usage example (#19)
- bump cmake version for noetic
- Contributors: Immanuel Martini, Michael Ferguson, mschickler
0.4.1 (2020-04-05)
- update package.xml for noetic
- Contributors: Michael Ferguson
0.4.0 (2020-04-02)
- add support for python-based coverage (#18)
- Contributors: Michael Ferguson
0.3.0 (2019-11-18)
- update target name in readme
- Merge pull request #15 from rhaschke/master Simplify + clarify usage
- add link to original source
- simplify usage
- automatically include(CodeCoverage)
- clarify that APPEND_COVERAGE_COMPILER_FLAGS() needs to be called before defining any target
- Merge pull request #13 from leunMar/fix/usage_docu Fix example of add_code_coverage() in README.md
- Fix example of add_code_coverage() in README.md
- Contributors: Immanuel Martini, Michael Ferguson, Robert Haschke
0.2.4 (2019-07-18)
- Merge pull request #11 from agutenkunst/master Keep *.info.cleaned. Closes #10
- Keep *.info.cleaned. Closes #10
- Merge pull request #8 from jschleicher/documentation documentation: degrade to test_depend
- documentation degrade to test_depend and note that build type should be set to Debug
- Contributors: Alexander Gutenkunst, Joachim Schleicher, Michael Ferguson
0.2.3 (2018-08-24)
- Merge pull request #7 from jschleicher/fix/installed_package fix search path for installed package
- fix search path for installed package Closes #6
- Contributors: Joachim Schleicher, Michael Ferguson
0.2.2 (2018-08-21)
- fix name of installspace file
- Contributors: Michael Ferguson
0.2.1 (2018-08-13)
- Merge pull request #3 from mikeferguson/catkin_build_fix Add support for catkin_tools (fixes #2)
- add information on how to run with catkin_tools
- minor escaping patch to work with catkin_tools
- Contributors: Michael Ferguson
0.2.0 (2018-08-01)
- First release
- Contributors: Michael Ferguson
Wiki Tutorials
Launch files
Messages
Services
Plugins
Recent questions tagged code_coverage at Robotics Stack Exchange
code_coverage package from code_coverage repocode_coverage |
|
Package Summary
Tags | No category tags. |
Version | 0.4.4 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/mikeferguson/code_coverage.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2023-08-29 |
Dev Status | DEVELOPED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Michael Ferguson
Authors
- Michael Ferguson
code_coverage
ROS package to run coverage testing
Examples
- The robot_calibration package uses this to generate coverage for C++ code using Travis-CI and Codecov.io
Usage
To use this with your ROS package:
- Add code_coverage as a test depend in your package.xml
- Update your CMakeLists.txt, in the testing section add the following. NOTE the order of test targets and coverage macros:
if(CATKIN_ENABLE_TESTING AND ENABLE_COVERAGE_TESTING)
find_package(code_coverage REQUIRED)
# Add compiler flags for coverage instrumentation before defining any targets
APPEND_COVERAGE_COMPILER_FLAGS()
endif()
# Add your targets here
if (CATKIN_ENABLE_TESTING)
# Add your tests here
# Create a target ${PROJECT_NAME}_coverage_report
if(ENABLE_COVERAGE_TESTING)
set(COVERAGE_EXCLUDES "*/${PROJECT_NAME}/test*" "*/${PROJECT_NAME}/other_dir_i_dont_care_about*")
add_code_coverage(
NAME ${PROJECT_NAME}_coverage_report
DEPENDENCIES _run_tests_${PROJECT_NAME}
)
endif()
endif()
-
Note: The variable
COVERAGE_EXCLUDES
must have some content! -
Now you can build and run the tests (you need a debug build to get reasonable coverage numbers):
- if using CATKIN_MAKE:
catkin_make -DENABLE_COVERAGE_TESTING=ON -DCMAKE_BUILD_TYPE=Debug
catkin_make -DENABLE_COVERAGE_TESTING=ON -DCMAKE_BUILD_TYPE=Debug PACKAGE_NAME_coverage_report
- if using CATKIN_TOOLS:
catkin config --cmake-args -DENABLE_COVERAGE_TESTING=ON -DCMAKE_BUILD_TYPE=Debug
catkin build
catkin build PACKAGE_NAME -v --no-deps --catkin-make-args PACKAGE_NAME_coverage_report
- The output will print where the coverage report is located
Python rostest Support
While the C++ interface and Python-based unit tests require no modification to get coverage information, Python-based nodes run from rostest launch files need a bit of additional instrumentation turned on:
<launch>
<!-- Add an argument to the launch file to turn on coverage -->
<arg name="coverage" default="false"/>
<!-- This fancy line forces nodes to generate coverage -->
<arg name="pythontest_launch_prefix" value="$(eval 'python-coverage run -p' if arg('coverage') else '')"/>
<!-- This node will NOT generate coverage information -->
<node pkg="example_pkg" name="publisher_node" type="publisher_node.py" />
<!-- But this node WILL generate coverage -->
<node pkg="example_pkg" name="subscriber_node" type="subscriber_node.py"
launch-prefix="$(arg pythontest_launch_prefix)" />
<!-- The test can also generate coverage information if you include the launch-prefix -->
<test time-limit="10" test-name="sample_rostest" pkg="example_pkg" type="sample_rostest.py"
launch-prefix="$(arg pythontest_launch_prefix)" />
</launch>
In the CMakeLists, you will need to pass this argument:
add_rostest(example_rostest.test ARGS coverage:=ENABLE_COVERAGE_TESTING)
Changelog for package code_coverage
0.4.4 (2020-10-29)
- Added python3-coverage support and error if python*-coverage is missing. (#27)
- Contributors: Stefan Fabian
0.4.3 (2020-07-30)
- Use multiple python coverage files (#23) Co-authored-by: hslusarek <<h.slusarek@pilz.de>>
- add note that robot_calibration uses this package
- fix #25
- Add new report formats
(#24)
- Add html report format
- Add console report format
- Add '--include' and '--omit' flag to python-coverage commands
- Contributors: Alexander Gutenkunst, Michael Ferguson, hslusarek
0.4.2 (2020-05-05)
- Add option for specifying extra flags to genhtml (#20) This modification allows you to add flags to the genhtml step so that you can do things like output the lcov report with demangled C++ function names, e.g.: catkin_make -DGENHTML_EXTRA_FLAGS="--demangle-cpp" -DENABLE_COVERAGE_TESTING=ON -DCMAKE_BUILD_TYPE=Debug test1_coverage_report
- Add catkin_make build step in usage example (#19)
- bump cmake version for noetic
- Contributors: Immanuel Martini, Michael Ferguson, mschickler
0.4.1 (2020-04-05)
- update package.xml for noetic
- Contributors: Michael Ferguson
0.4.0 (2020-04-02)
- add support for python-based coverage (#18)
- Contributors: Michael Ferguson
0.3.0 (2019-11-18)
- update target name in readme
- Merge pull request #15 from rhaschke/master Simplify + clarify usage
- add link to original source
- simplify usage
- automatically include(CodeCoverage)
- clarify that APPEND_COVERAGE_COMPILER_FLAGS() needs to be called before defining any target
- Merge pull request #13 from leunMar/fix/usage_docu Fix example of add_code_coverage() in README.md
- Fix example of add_code_coverage() in README.md
- Contributors: Immanuel Martini, Michael Ferguson, Robert Haschke
0.2.4 (2019-07-18)
- Merge pull request #11 from agutenkunst/master Keep *.info.cleaned. Closes #10
- Keep *.info.cleaned. Closes #10
- Merge pull request #8 from jschleicher/documentation documentation: degrade to test_depend
- documentation degrade to test_depend and note that build type should be set to Debug
- Contributors: Alexander Gutenkunst, Joachim Schleicher, Michael Ferguson
0.2.3 (2018-08-24)
- Merge pull request #7 from jschleicher/fix/installed_package fix search path for installed package
- fix search path for installed package Closes #6
- Contributors: Joachim Schleicher, Michael Ferguson
0.2.2 (2018-08-21)
- fix name of installspace file
- Contributors: Michael Ferguson
0.2.1 (2018-08-13)
- Merge pull request #3 from mikeferguson/catkin_build_fix Add support for catkin_tools (fixes #2)
- add information on how to run with catkin_tools
- minor escaping patch to work with catkin_tools
- Contributors: Michael Ferguson
0.2.0 (2018-08-01)
- First release
- Contributors: Michael Ferguson