Pour tout problème contactez-nous par mail : support@froggit.fr | La FAQ :grey_question: | Rejoignez-nous sur le Chat :speech_balloon:

Skip to content
Snippets Groups Projects
README.md 3.19 KiB
Newer Older
  • Learn to ignore specific revisions
  • ## 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 [job customization](https://docs.r2devops.io/get-started/use-templates/#job-templates-customization).
    
    | Name             | Description                                                                                                                                                  | Default                    |
    |------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------|
    | `PROJECT_PATH`   | The path to the project root directory.                                                                                                                      | `"."`                      |
    | `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"`                 |
    | `PYTHON_SETUP`   | Bash commands to setup your python environment. Default rely on `pyproject.toml` to install project and test dependencies.                                   | `"pip install .[TESTS]"`   |
    | `PYTEST_RUN_CMD` | Bash command to run pytest.                                                                                                                                  | `"pytest ${PROJECT_PATH}"` |
    
    
    ## 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.
    
    ## Multiple pytest Jobs in the same pipeline
    
    
    You can run this pytest job multiple times in the same pipeline (e.g. to test multiple python
    version
    
    or different namespaces) using extends GitLab keyword.
    
    ```yaml
    stages:
        - test
    
    include:
    
        -   remote: 'https://api.r2devops.io/job/r/gitlab/dorianturba/r2devops_catalog/r2_metadata/pytest@1.0.0.yaml'
    
    
    # Compatibility tests
    pytest_3.10:
        extends: pytest
        variables:
            IMAGE_TAG: "3.10"
    ```
    
    https://docs.r2devops.io/get-started/use-templates/#multiple-usage-of-the-same-job-template-in-your-pipeline
    
    ## 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>
    ```