summaryrefslogtreecommitdiff
path: root/PKG-INFO
blob: f12d7b40cc626e4de19440ca1b55ccec9219962a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
Metadata-Version: 2.1
Name: test_stages
Version: 0.1.5
Summary: Group Tox, Nox, etc environments into stages, run them in parallel
Project-URL: Homepage, https://devel.ringlet.net/devel/test-stages
Project-URL: Changes, https://devel.ringlet.net/devel/test-stages/changes/
Project-URL: Issue Tracker, https://gitlab.com/ppentchev/test-stages/-/issues
Project-URL: Source Code, https://gitlab.com/ppentchev/test-stages
Author-email: Peter Pentchev <roam@ringlet.net>
License: BSD-2-Clause
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Framework :: tox
Classifier: Intended Audience :: Developers
Classifier: License :: DFSG approved
Classifier: License :: Freely Distributable
Classifier: License :: OSI Approved
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Testing :: Unit
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Requires-Python: >=3.8
Requires-Dist: click<9,>=8
Requires-Dist: packaging<24,>=17
Requires-Dist: parse-stages<0.2,>=0.1.4
Requires-Dist: pyparsing<4,>=3
Requires-Dist: tomli<3,>=2; python_version < '3.11'
Requires-Dist: utf8-locale<2,>=1
Provides-Extra: tox
Requires-Dist: tox<5,>=4; extra == 'tox'
Description-Content-Type: text/markdown

<!--
SPDX-FileCopyrightText: Peter Pentchev <roam@ringlet.net>
SPDX-License-Identifier: BSD-2-Clause
-->

# 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][tox] or [Nox][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][roam] in
[a GitLab repository][gitlab].

[flake8]: https://github.com/pycqa/flake8 "The flake8 Python syntax and style checker"
[gitlab]: https://gitlab.com/ppentchev/test-stages "The test-stages GitLab repository"
[nox]: https://nox.thea.codes/ "The Nox test runner"
[parse-stages]: https://devel.ringlet.net/devel/parse-stages "Parse a mini-language for selecting objects by tag or name"
[roam]: mailto:roam@ringlet.net "Peter Pentchev"
[ruff]: https://github.com/charliermarsh/ruff "Ruff, the extremely fast Python linter"
[tox]: https://tox.wiki/ "The Tox automation project"