mirror of
https://github.com/django/django.git
synced 2025-08-03 18:38:50 +00:00
Enabled parallel testing by default in runtests.py.
This commit is contained in:
parent
39bb66baad
commit
33c7c2a557
8 changed files with 45 additions and 6 deletions
|
@ -12,7 +12,7 @@ from argparse import ArgumentParser
|
|||
import django
|
||||
from django.apps import apps
|
||||
from django.conf import settings
|
||||
from django.db import connection
|
||||
from django.db import connection, connections
|
||||
from django.test import TestCase, TransactionTestCase
|
||||
from django.test.runner import default_test_processes
|
||||
from django.test.utils import get_runner
|
||||
|
@ -103,8 +103,10 @@ def get_installed():
|
|||
|
||||
def setup(verbosity, test_labels, parallel):
|
||||
if verbosity >= 1:
|
||||
print("Testing against Django installed in '%s' with %d processes" % (
|
||||
os.path.dirname(django.__file__), parallel))
|
||||
msg = "Testing against Django installed in '%s'" % os.path.dirname(django.__file__)
|
||||
if parallel > 1:
|
||||
msg += " with %d processes" % parallel
|
||||
print(msg)
|
||||
|
||||
# Force declaring available_apps in TransactionTestCase for faster tests.
|
||||
def no_available_apps(self):
|
||||
|
@ -232,6 +234,17 @@ def teardown(state):
|
|||
setattr(settings, key, value)
|
||||
|
||||
|
||||
def actual_test_processes(parallel):
|
||||
if parallel == 0:
|
||||
# This doesn't work before django.setup() on some databases.
|
||||
if all(conn.features.can_clone_databases for conn in connections.all()):
|
||||
return default_test_processes()
|
||||
else:
|
||||
return 1
|
||||
else:
|
||||
return parallel
|
||||
|
||||
|
||||
def django_tests(verbosity, interactive, failfast, keepdb, reverse,
|
||||
test_labels, debug_sql, parallel):
|
||||
state = setup(verbosity, test_labels, parallel)
|
||||
|
@ -249,7 +262,7 @@ def django_tests(verbosity, interactive, failfast, keepdb, reverse,
|
|||
keepdb=keepdb,
|
||||
reverse=reverse,
|
||||
debug_sql=debug_sql,
|
||||
parallel=parallel,
|
||||
parallel=actual_test_processes(parallel),
|
||||
)
|
||||
failures = test_runner.run_tests(
|
||||
test_labels or get_installed(),
|
||||
|
@ -396,7 +409,7 @@ if __name__ == "__main__":
|
|||
'--debug-sql', action='store_true', dest='debug_sql', default=False,
|
||||
help='Turn on the SQL query logger within tests.')
|
||||
parser.add_argument(
|
||||
'--parallel', dest='parallel', nargs='?', default=1, type=int,
|
||||
'--parallel', dest='parallel', nargs='?', default=0, type=int,
|
||||
const=default_test_processes(),
|
||||
help='Run tests in parallel processes.')
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue