Skip to main content

Run Tox tests in groups, stopping on errors

The test-stages library provides command-line tools that wrap Python test environment runners such as Tox or Nox, invoking them so as the various tests are run in parallel, in groups, as specified on the command line. This allows the fastest tests to be run first, and the slower ones to only be started if it makes sense (e.g. if tools like ruff or flake8 did not uncover any trivial syntax errors).

The tox-stages tool runs Tox with the specified groups of test environments, stopping if any of the tests in a group should fail. This allows quick static check tools like e.g. ruff to stop the testing process early, and also allows scenarios like running all the static check tools before the package's unit or functional tests to avoid unnecessary failures on simple errors.

The syntax for grouping the test environments to be run is described in the parse-stages library's documentation.

Running Tox tests in groups

The tox-stages tool may be invoked with a list of stages specified on the command line:

tox-stages run @check @tests

If the tox-stages run command is invoked without any stage specifications, the tool looks for the stages list of strings in the [tool.test-stages] section of the pyproject.toml file:

[tool.test-stages]
stages = ["ruff and not @manual", "@check", "@tests"]

Author

The test-stages library is developed by Peter Pentchev in a GitLab repository.

Metadata

Release files for test-stages 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for test-stages 0.2.0
File Size Uploaded
test_stages-0.2.0.tar.gz 25.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for test-stages 0.2.0
File Interpreter ABI Platform
test_stages-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 36.2 kB

Release files / test_stages-0.2.0.tar.gz

Download URL test_stages-0.2.0.tar.gz
Size 25.3 kB
Tags Source
SHA-256 checksum
How to use checksums
370fb9e7d9094a16a54fe085f1c2015c8db73feffe7233ac4b385b31acf82bdc
BLAKE2b-256 checksum
How to use checksums
102776f1d857a5f29200b8f25791236d225d8412eea1c51a2785b7dbc013c282
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Release files / test_stages-0.2.0-py3-none-any.whl

Download URL test_stages-0.2.0-py3-none-any.whl
Size 10.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cf1ea3817586b49b1e487d181b1d5c51bb8ba99e86c25be8b242284c87e6d316
BLAKE2b-256 checksum
How to use checksums
91662f52a4491e484e5a12336bcdab0ea97213d5836eef797372c5b87ded943e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page