Prevented --parallel from crashing on Windows.
Since --parallel is documented not to work on Windows, it's better to ignore it and run without parallelization than to crash. For example this could simplify cross-platform test scripts.
This commit is contained in:
parent
64d7a553e1
commit
2425f6fda0
|
@ -211,6 +211,11 @@ def default_test_processes():
|
||||||
"""
|
"""
|
||||||
Default number of test processes when using the --parallel option.
|
Default number of test processes when using the --parallel option.
|
||||||
"""
|
"""
|
||||||
|
# The current implementation of the parallel test runner requires
|
||||||
|
# multiprocessing to start subprocesses with fork().
|
||||||
|
# On Python 3.4+: if multiprocessing.get_start_method() != 'fork':
|
||||||
|
if not hasattr(os, 'fork'):
|
||||||
|
return 1
|
||||||
try:
|
try:
|
||||||
return int(os.environ['DJANGO_TEST_PROCESSES'])
|
return int(os.environ['DJANGO_TEST_PROCESSES'])
|
||||||
except KeyError:
|
except KeyError:
|
||||||
|
|
|
@ -236,11 +236,8 @@ def teardown(state):
|
||||||
|
|
||||||
def actual_test_processes(parallel):
|
def actual_test_processes(parallel):
|
||||||
if parallel == 0:
|
if parallel == 0:
|
||||||
# On Python 3.4+: if multiprocessing.get_start_method() != 'fork':
|
|
||||||
if not hasattr(os, 'fork'):
|
|
||||||
return 1
|
|
||||||
# This doesn't work before django.setup() on some databases.
|
# This doesn't work before django.setup() on some databases.
|
||||||
elif all(conn.features.can_clone_databases for conn in connections.all()):
|
if all(conn.features.can_clone_databases for conn in connections.all()):
|
||||||
return default_test_processes()
|
return default_test_processes()
|
||||||
else:
|
else:
|
||||||
return 1
|
return 1
|
||||||
|
|
Loading…
Reference in New Issue