diff --git a/tests/runtests.py b/tests/runtests.py index 8f612c80ec8..0387a1c0a31 100755 --- a/tests/runtests.py +++ b/tests/runtests.py @@ -198,7 +198,7 @@ def teardown(state): setattr(settings, key, value) -def django_tests(verbosity, interactive, failfast, test_labels): +def django_tests(verbosity, interactive, failfast, keepdb, test_labels): state = setup(verbosity, test_labels) extra_tests = [] @@ -211,6 +211,7 @@ def django_tests(verbosity, interactive, failfast, test_labels): verbosity=verbosity, interactive=interactive, failfast=failfast, + keepdb=keepdb, ) # Catch warnings thrown in test DB setup -- remove in Django 1.9 with warnings.catch_warnings(): @@ -346,6 +347,9 @@ if __name__ == "__main__": '--failfast', action='store_true', dest='failfast', default=False, help='Tells Django to stop running the test suite after first failed ' 'test.') + parser.add_argument( + '-k', '--keepdb', action='store_true', dest='keepdb', default=False, + help='Tells Django to preserve the test database between runs.') parser.add_argument( '--settings', help='Python path to settings module, e.g. "myproject.settings". If ' @@ -388,6 +392,7 @@ if __name__ == "__main__": paired_tests(options.pair, options, options.modules) else: failures = django_tests(options.verbosity, options.interactive, - options.failfast, options.modules) + options.failfast, options.keepdb, + options.modules) if failures: sys.exit(bool(failures))