This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: unittest: execute tests in parallel
Type: enhancement Stage:
Components: Library (Lib) Versions: Python 3.9
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: bar.harel, ezio.melotti, giampaolo.rodola, michael.foord, terry.reedy, user93448, xtreak
Priority: normal Keywords:

Created on 2019-08-16 14:15 by user93448, last changed 2022-04-11 14:59 by admin.

Messages (5)
msg349864 - (view) Author: D. A. Pellegrino (user93448) Date: 2019-08-16 14:15
The unittest documentation makes reference to a potential parallelization feature:

"Note that shared fixtures do not play well with [potential] features like test parallelization and they break test isolation. They should be used with care." (https://docs.python.org/3/library/unittest.html)

However, it seems that executing tests in parallel is not yet a feature of unittest. This enhancement request is to add parallel execution of tests to unittest.

A command line option may be a good interface. Ideally, it would be compatible with test discovery. Outside of the Python ecosystem, a common practice is to define test cases in a Makefile and then execute GNU Make with the '-j' flag (https://www.gnu.org/software/make/manual/html_node/Parallel.html#Parallel). Adding such an option to unittest would be a convenience and may save the effort of bringing in additional libraries or tools for parallel unit test execution.
msg349938 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2019-08-19 06:03
test.regrtest has a  -j option. Perhaps some of the Python coding for that could be used for unitest also.
msg350080 - (view) Author: Karthikeyan Singaravelan (xtreak) * (Python committer) Date: 2019-08-21 12:55
See also https://mail.python.org/pipermail/python-ideas/2017-September/047100.html . One of the ideas in the thread was to move test.regrtest parallel execution functionality into unittest. I think this would be good to have it in unittest like support in pytest for -j.
msg375126 - (view) Author: D. A. Pellegrino (user93448) Date: 2020-08-10 15:55
Leveraging GNU Parallel (https://www.gnu.org/software/parallel/) might help simplify implementation. Perhaps that could be used as a subprocess call?
msg375128 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2020-08-10 16:10
> Leveraging GNU Parallel (https://www.gnu.org/software/parallel/) might help simplify implementation. Perhaps that could be used as a subprocess call?

In general, we attempt to avoid depending on the availability of external tool. For example, I don't expect this tool to be available on Windows, whereas it would be better to support parallel execution on Windows as well.
History
Date User Action Args
2022-04-11 14:59:19adminsetgithub: 82054
2020-09-02 09:57:36vstinnersetnosy: - vstinner
2020-09-01 19:50:21bar.harelsetnosy: + bar.harel
2020-08-10 16:10:33vstinnersetmessages: + msg375128
2020-08-10 15:55:46user93448setmessages: + msg375126
2020-04-30 20:06:10giampaolo.rodolasetnosy: + giampaolo.rodola
2019-08-21 12:55:16xtreaksetmessages: + msg350080
2019-08-21 12:45:09xtreaksetnosy: + xtreak
2019-08-21 10:55:14vstinnersetnosy: + vstinner
2019-08-19 06:03:56terry.reedysetnosy: + ezio.melotti, michael.foord
2019-08-19 06:03:39terry.reedysetnosy: + terry.reedy
messages: + msg349938
2019-08-16 14:15:27user93448create