mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-16 19:41:06 +03:00
Improve coverage reporting
This commit is contained in:
parent
9ec50ac442
commit
39d9ac9d1b
|
@ -9,27 +9,18 @@ import os
|
||||||
import sys
|
import sys
|
||||||
os.environ['DJANGO_SETTINGS_MODULE'] = 'djangorestframework.runtests.settings'
|
os.environ['DJANGO_SETTINGS_MODULE'] = 'djangorestframework.runtests.settings'
|
||||||
|
|
||||||
from django.conf import settings
|
|
||||||
from django.test.utils import get_runner
|
|
||||||
from coverage import coverage
|
from coverage import coverage
|
||||||
from itertools import chain
|
from itertools import chain
|
||||||
import djangorestframework
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
"""Run the tests for djangorestframework and generate a coverage report."""
|
"""Run the tests for djangorestframework and generate a coverage report."""
|
||||||
|
|
||||||
# Discover the list of all modules that we should test coverage for
|
|
||||||
project_dir = os.path.dirname(djangorestframework.__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')])
|
|
||||||
|
|
||||||
cov = coverage()
|
cov = coverage()
|
||||||
cov.erase()
|
cov.erase()
|
||||||
cov.start()
|
cov.start()
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.test.utils import get_runner
|
||||||
TestRunner = get_runner(settings)
|
TestRunner = get_runner(settings)
|
||||||
|
|
||||||
if hasattr(TestRunner, 'func_name'):
|
if hasattr(TestRunner, 'func_name'):
|
||||||
|
@ -46,6 +37,26 @@ def main():
|
||||||
failures = test_runner.run_tests(['djangorestframework'])
|
failures = test_runner.run_tests(['djangorestframework'])
|
||||||
|
|
||||||
cov.stop()
|
cov.stop()
|
||||||
|
|
||||||
|
# Discover the list of all modules that we should test coverage for
|
||||||
|
import djangorestframework
|
||||||
|
|
||||||
|
project_dir = os.path.dirname(djangorestframework.__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
|
||||||
|
|
||||||
|
# Drop the compat module from coverage, since we're not interested in the coverage
|
||||||
|
# of a module which is specifically for resolving environment dependant imports.
|
||||||
|
# (Because we'll end up getting different coverage reports for it for each environment)
|
||||||
|
if 'compat.py' in files:
|
||||||
|
files.remove('compat.py')
|
||||||
|
|
||||||
|
cov_files.extend([os.path.join(path, file) for file in files if file.endswith('.py')])
|
||||||
|
|
||||||
cov.report(cov_files)
|
cov.report(cov_files)
|
||||||
cov.xml_report(cov_files)
|
cov.xml_report(cov_files)
|
||||||
sys.exit(failures)
|
sys.exit(failures)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user