aboutsummaryrefslogtreecommitdiffstats
path: root/examples/runtests.py
diff options
context:
space:
mode:
authormarkotibold2011-04-27 15:07:25 +0200
committermarkotibold2011-04-27 15:07:25 +0200
commit116a9ee82486fb31a9132db837569460fe1eb5da (patch)
tree85432ddc59664164a3cc1b4fd8911c12b17a51b8 /examples/runtests.py
parent391560e69c5e37edac2e3c470253e7dce3c62511 (diff)
downloaddjango-rest-framework-116a9ee82486fb31a9132db837569460fe1eb5da.tar.bz2
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.
Diffstat (limited to 'examples/runtests.py')
-rw-r--r--examples/runtests.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/examples/runtests.py b/examples/runtests.py
index b420968f..fdd35839 100644
--- a/examples/runtests.py
+++ b/examples/runtests.py
@@ -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__':