Provides additional TestRunner() classes that implement various parallel operation modes to run tests.
For most moderate deployments, running tests in serial will out perform any of the methods provided here. However, because the workloads of tests are not uniform, and good test performance is crucial for usability, dtf provides these options, largely for testing and research.
Uses the Pool() class to run tests in parallel using gevent and greenlets. Typically this modality has only minor additional overhead in addition to running tests in serial, but may provide the same benefits as ThreadedTestRuner() with lower overhead.
A MultiTestRunner() sub-class that initializes a single additional attribute for configuring thread or worker pools.
Used as a base class for the test runners with parallel test execution. Lacks a run()`() method.
The size of the worker thread pool used to run tests.
Uses the Pool() class within the standard multiprocessing module to run tests in parallel. Functionally equivelent to ThreadedTestRunner(), without the fallback possibility.
Theoretically the multiprocessing approach has more overhead than threading; however, in cases where the performance bottlenecks are due to the interpreter lock, this approach may afford better performance.
Uses the threadpool module to run a suite of tests with a pool of threads. This is the ideal modality for suites with workloads that spend the most of the time reading files and computing hashes, which may be common for some suites. See ProcessTestRunner() for an alternate parallelism strategy.