Newer
Older
## Objective
Run [pytest](https://docs.pytest.org/en/latest/) on your Python code to ensure all unit tests pass.
Pytest is a popular framework for writing and executing tests in Python, and it supports test
automation, modular fixtures, parameterized testing, and many other features.
## How to use it
1. Configure the `pytest.ini` or `pyproject.toml` file in your repository's root directory with your
desired rules.
2. Include the pytest template in your CI/CD configuration (see quick use above).
3. If you need to customize the job, check
the [jobs customization](https://docs.r2devops.io/get-started/use-templates/#job-templates-customization).
## Variables
| Name | Description | Default |
|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------|
| `PYTHON_SETUP` | Bash commands to setup your python environment. Default rely on `pyproject.toml` to install project and test dependencies. | `"pip install .[TESTS]"` |
| `IMAGE_TAG` | The default tag for the docker image. See [Python Docker Official Image](https://hub.docker.com/_/python) for supported tags and respective Dockerfile links | `"latest"` |
## Global Configuration of pytest
To add configuration to `pytest` that is shared with any other usage of pytest (such as manual runs,
pre-commit, etc.), you can use the `pytest.ini` or `pyproject.toml` configuration files. Learn more
about [pytest configuration](https://docs.pytest.org/en/stable/customize.html) files.
## Add a <a href="https://docs.pytest.org/en/latest/"><img alt="Tested with pytest" src="https://img.shields.io/badge/Tested%20with-pytest-green"></a> Badge to your project README.md
To display the use of pytest in your project, you can add the following badge to your README.md:
```markdown
<a href="https://docs.pytest.org/en/latest/">
<img alt="Tested with pytest" src="https://img.shields.io/badge/Tested%20with-pytest-green">
</a>
```
Please note that the `src` URL in the pytest badge will need to be updated to reflect the actual
testing status of your project in your continuous integration pipeline.