mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-04-02 16:24:25 +03:00
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.
This commit is contained in:
parent
391560e69c
commit
116a9ee824
|
@ -4,10 +4,24 @@ os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
|
|||
|
||||
from django.conf import settings
|
||||
from django.test.utils import get_runner
|
||||
from coverage import coverage
|
||||
|
||||
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)
|
||||
|
||||
|
||||
cov = coverage()
|
||||
cov.erase()
|
||||
cov.start()
|
||||
if hasattr(TestRunner, 'func_name'):
|
||||
# Pre 1.2 test runners were just functions,
|
||||
# and did not support the 'failfast' option.
|
||||
|
@ -21,6 +35,9 @@ def main():
|
|||
test_runner = TestRunner()
|
||||
failures = test_runner.run_tests(['blogpost', 'pygments_api'])
|
||||
|
||||
cov.stop()
|
||||
cov.report(cov_files)
|
||||
cov.xml_report(cov_files)
|
||||
sys.exit(failures)
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
Loading…
Reference in New Issue
Block a user