The otopi 1.6.0 package currently in ovirt-master-snapshot includes
a new feature that allows you to collect coverage reports from your executions. In order to enable the feature you'll need to provide a configuration file like: 8<-------------------------------------- [run] branch = True [report] exclude_lines = # Have to re-enable the standard pragma pragma: no cover # Don't complain about missing debug-only code: def __repr__ if self\.debug # Don't complain if tests don't hit defensive assertion code: raise AssertionError raise NotImplementedError # Don't complain if non-runnable code isn't run: if 0: if __name__ == .__main__.: ignore_errors = True 8<------------------------------------ Be sure to have python-coverage and libselinux-python installed on your system and then execute: OTOPI_COVERAGE=1 COVERAGE_PROCESS_START=<your config> <your command>
where your config is the path to your config file and your command may be engine-setup, engine-cleanup, ovirt-host-deploy, hosted-engine --deploy or any other possible command which uses otopi framework.
In order to generate the report: coverage html -d coverage_html_report

This feature is already leveraged in otopi check-patches and check-merged jobs: http://jenkins.ovirt.org/search/?q=otopi_master_check
More test jobs will possibly follow.

New tests to improve coverage, improvements to the coverage configuration, suggestions, porting to other projects are welcome.


--
Sandro Bonazzola
Better technology. Faster innovation. Powered by community collaboration.
See how it works at redhat.com