diff --git a/pavelib/tests.py b/pavelib/tests.py index 1b7d999caf..2f7a1b7723 100644 --- a/pavelib/tests.py +++ b/pavelib/tests.py @@ -3,7 +3,7 @@ Unit test tasks """ import os import sys -from paver.easy import sh, task, cmdopts, needs, call_task +from paver.easy import sh, task, cmdopts, needs, call_task, no_help from pavelib.utils.test import suites from pavelib.utils.envs import Env from optparse import make_option @@ -212,16 +212,26 @@ def coverage(options): call_task('diff_coverage', options=dict(options)) +@no_help @task @needs('pavelib.prereqs.install_prereqs') -def combine_coverage(): +def combine_jenkins_coverage(): """ - Combine coverage reports. + Combine coverage reports from jenkins build flow. """ + coveragerc = Env.REPO_ROOT / 'test_root' / '.jenkins-coveragerc' + for directory in Env.LIB_TEST_DIRS + ['cms', 'lms']: report_dir = Env.REPORT_DIR / directory + + # Only try to combine the coverage if we've run the tests. if report_dir.isdir(): - sh("cd {} && coverage combine".format(report_dir)) + sh( + "cd {} && coverage combine --rcfile={}".format( + report_dir, + coveragerc, + ) + ) @task diff --git a/scripts/jenkins-report.sh b/scripts/jenkins-report.sh index 8a43df2a5b..0a012f0b88 100755 --- a/scripts/jenkins-report.sh +++ b/scripts/jenkins-report.sh @@ -2,7 +2,7 @@ source scripts/jenkins-common.sh # Combine the data files that were generated using -p -paver combine_coverage +paver combine_jenkins_coverage # Get the diff coverage and html reports for unit tests paver coverage diff --git a/test_root/.jenkins-coveragerc b/test_root/.jenkins-coveragerc new file mode 100644 index 0000000000..e5a4c0f34d --- /dev/null +++ b/test_root/.jenkins-coveragerc @@ -0,0 +1,4 @@ +[paths] +source = + /home/jenkins/workspace/edx-platform-unit-coverage + /home/jenkins/workspace/edx-platform-test-subset