Commit 116a9ee8 by markotibold

Stole some code from djangorestframework/runtests/runcoverage.py so that…

Stole some code from djangorestframework/runtests/runcoverage.py so that coverage is also implemented for the examples. Because Jenkins looks for a coverage.xml file for all defeined projects in tox.ini we need it to pass the tests.
parent 391560e6
...@@ -4,10 +4,24 @@ os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' ...@@ -4,10 +4,24 @@ os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from django.conf import settings from django.conf import settings
from django.test.utils import get_runner from django.test.utils import get_runner
from coverage import coverage
def main(): def main():
"""Run the tests for the examples and generate a coverage report."""
# Discover the list of all modules that we should test coverage for
project_dir = os.path.dirname(__file__)
cov_files = []
for (path, dirs, files) in os.walk(project_dir):
# Drop tests and runtests directories from the test coverage report
if os.path.basename(path) == 'tests' or os.path.basename(path) == 'runtests':
continue
cov_files.extend([os.path.join(path, file) for file in files if file.endswith('.py')])
TestRunner = get_runner(settings) TestRunner = get_runner(settings)
cov = coverage()
cov.erase()
cov.start()
if hasattr(TestRunner, 'func_name'): if hasattr(TestRunner, 'func_name'):
# Pre 1.2 test runners were just functions, # Pre 1.2 test runners were just functions,
# and did not support the 'failfast' option. # and did not support the 'failfast' option.
...@@ -21,6 +35,9 @@ def main(): ...@@ -21,6 +35,9 @@ def main():
test_runner = TestRunner() test_runner = TestRunner()
failures = test_runner.run_tests(['blogpost', 'pygments_api']) failures = test_runner.run_tests(['blogpost', 'pygments_api'])
cov.stop()
cov.report(cov_files)
cov.xml_report(cov_files)
sys.exit(failures) sys.exit(failures)
if __name__ == '__main__': if __name__ == '__main__':
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment