[ovirt-devel] [VDSM] Coverage reports
Nir Soffer
nsoffer at redhat.com
Fri Nov 27 18:57:12 UTC 2015
Hi all,
Thanks to Edward, we have now coverage reports in jenkins.
The way to access the report on jenkins is to use this url:
http://jenkins.ovirt.org/job/vdsm_master_check-patch-fc23-x86_64/<build-number>/artifact/exported-artifacts/htmlcov/index.html
Here is an example, hopefully it will be accessible when you try:
http://jenkins.ovirt.org/job/vdsm_master_check-patch-fc23-x86_64/648/artifact/exported-artifacts/htmlcov/index.html
Todo:
- Easy way to access the report from gerrit
It should be easy to add a link the coverage report in the comment added
by jenkins after a build finish.
- Store the coverage reports for longer time, maybe a week?
- We have only 45% coverage instead of the minimum, 100%.
Note that coverage of 25% can mean *no* code was run by the tests.
The only code
running was the functions and class definitions. Here is an example:
http://jenkins.ovirt.org/job/vdsm_master_check-patch-fc23-x86_64/648/artifact/exported-artifacts/htmlcov/_home_jenkins_workspace_vdsm_master_check-patch-fc23-x86_64_vdsm_vdsm_storage_devicemapper_py.html
Modules that were never imported during the tests have 0% coverage:
http://jenkins.ovirt.org/job/vdsm_master_check-patch-fc23-x86_64/648/artifact/exported-artifacts/htmlcov/_home_jenkins_workspace_vdsm_master_check-patch-fc23-x86_64_vdsm_vdsm_storage_hsm_py.html
- coverage creates lot of useless noise in the jenkins logs, need to slicense
this output.
http://jenkins.ovirt.org/job/vdsm_master_check-patch-fc23-x86_64/648/consoleFull
I did not find a way to do this in nosetests, may need hacking
nose coverage plugin.
- The report includes only the tests in the tests directory.
We have additional tests in lib/vdsm/infra/* which are not
included. We should
move these to the tests directory.
- The report is using absolute paths, but we like shorter relative paths.
I don't see a way to configure nosetests or coverage to generate
relative paths.
May need hacking of the generated html/json in htmlcov.
- Add "make coverage" target for running coverage locally
- An easy way to enable coverage for the functional tests or for running
a single test module.
Can be done using nosetests --cover* options. Should be documented in
tests/README, and maybe automated using a script or Makefile.
When running locally, one would like to have the script open the report
in the browser automatically:
xdg-open tests/htmlcov/index.html
- An easy way to enable coverage when testing flows in vdsm
Petr sent a patch for enabling coverage using vdsm.conf:
https://gerrit.ovirt.org/49168
We discussed adding vdsm-coverage package that will make it easy to setup
Nir
More information about the Devel
mailing list