Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 21 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,19 +74,35 @@ That's it. You should be ready to make changes, run tests, and make commits! If

## Running Tests

You can run all tests with the following command:
We test against a number of Python language and library versions, which are automatically generated and stored in the [tox.ini](tox.ini) file. The `envlist` defines the environments you can choose from when running tests, and correspond to package versions and environment variables. The `TESTPATH` environment variable, in turn, determines which tests are run.

The tox CLI tool is required to run the tests locally. Follow [the installation instructions](https://tox.wiki/en/latest/installation.html) for tox. Dependencies are installed for you when you run the command below, but _you_ need to bring an appropriate Python interpreter. Versions 3.8 and up can be installed with brew.

An environment consists of the Python major and minor version and the library name and version. The exception to the rule is that you can provide `common` instead of the library information. The environments tied to a specific library usually run the corresponding test suite, while `common` targets all tests but skips those that require uninstalled dependencies.

To run Celery tests for version v5.5.3 of its Python library using a 3.12 interpreter, use

```bash
tox -p auto -o -e py3.12-celery-v5.5.3
```

or to use the `common` environment, run

```bash
pytest tests/
tox -p auto -o -e py3.12-common
```

If you would like to run the tests for a specific integration, use a command similar to the one below:
To select specific tests, you can forward arguments to `pytest` like so

```bash
pytest -rs tests/integrations/flask/ # Replace "flask" with the specific integration you wish to test
tox -p auto -o -e py3.12-celery-v5.5.3 -- -k test_transaction_events
```

**Hint:** Tests of integrations need additional dependencies. The switch `-rs` will show you why tests were skipped and what dependencies you need to install for the tests to run. (You can also consult the [tox.ini](tox.ini) file to see what dependencies are installed for each integration)
In general, you use

```bash
tox -p auto -o -e <tox_env> -- <pytest_args>
```

## Adding a New Integration

Expand Down
Loading