Avoided running more test processes than necessary.
This reduces the time spent cloning databases. Thanks Tim for the suggestion.
This commit is contained in:
parent
33c7c2a557
commit
710b4a7032
|
@ -453,7 +453,17 @@ class DiscoverRunner(object):
|
||||||
suite = reorder_suite(suite, self.reorder_by, self.reverse)
|
suite = reorder_suite(suite, self.reorder_by, self.reverse)
|
||||||
|
|
||||||
if self.parallel > 1:
|
if self.parallel > 1:
|
||||||
suite = self.parallel_test_suite(suite, self.parallel, self.failfast)
|
parallel_suite = self.parallel_test_suite(suite, self.parallel, self.failfast)
|
||||||
|
|
||||||
|
# Since tests are distributed across processes on a per-TestCase
|
||||||
|
# basis, there's no need for more processes than TestCases.
|
||||||
|
parallel_units = len(parallel_suite.subsuites)
|
||||||
|
if self.parallel > parallel_units:
|
||||||
|
self.parallel = parallel_units
|
||||||
|
|
||||||
|
# If there's only one TestCase, parallelization isn't needed.
|
||||||
|
if self.parallel > 1:
|
||||||
|
suite = parallel_suite
|
||||||
|
|
||||||
return suite
|
return suite
|
||||||
|
|
||||||
|
|
|
@ -1274,6 +1274,10 @@ By default ``--parallel`` runs one process per core according to
|
||||||
either by providing it as the option's value, e.g. ``--parallel=4``, or by
|
either by providing it as the option's value, e.g. ``--parallel=4``, or by
|
||||||
setting the ``DJANGO_TEST_PROCESSES`` environment variable.
|
setting the ``DJANGO_TEST_PROCESSES`` environment variable.
|
||||||
|
|
||||||
|
Django distributes test cases — :class:`unittest.TestCase` subclasses — to
|
||||||
|
subprocesses. If there are fewer test cases than configured processes, Django
|
||||||
|
will reduce the number of processes accordingly.
|
||||||
|
|
||||||
Each process gets its own database. You must ensure that different test cases
|
Each process gets its own database. You must ensure that different test cases
|
||||||
don't access the same resources. For instance, test cases that touch the
|
don't access the same resources. For instance, test cases that touch the
|
||||||
filesystem should create a temporary directory for their own use.
|
filesystem should create a temporary directory for their own use.
|
||||||
|
|
Loading…
Reference in New Issue