Making Pytest easier to use with Microsoft Azure Pipelines.
Just run pytest with this plugin and see your test results in the Azure Pipelines UI!
Features:
- Formats the PyTest output to show test docstrings and module names instead of just test case names in the Azure Pipelines UI.
- Overloads the
--junit-xml
flag on execution with a default value - Uploads test results automatically, no need for a seperate test results upload command
- Displays the number of failed tests if there were failures as an error message in the UI
- Automatically formats code coverage and uploads coverage data if pytest-cov is installed
You can install "pytest-azurepipelines" via pip from PyPI:
$ pip install pytest-azurepipelines
This plugin requires no configuration.
Here is an example of installing the plugin and running the tests.
- script: |
python -m pip install --upgrade pip
pip install pytest pytest-azurepipelines
pip install -e .
displayName: 'Install dependencies'
- script: |
python -m pytest tests/
displayName: 'pytest'
If you want to change the Azure Pipelines "Test Run Title", you can provide the --test-run-title
flag with the run title.
- script: |
pip install pytest pytest-azurepipelines
pytest tests/ --test-run-title="Windows Test with junitxml"
displayName: 'pytest with junitxml flag'
If you have long docstrings in your functions and want them to be shortened, you can use the --napoleon-docstrings
flag:
- script: |
pip install pytest pytest-azurepipelines
pytest tests/ --test-run-title="Windows Test with junitxml" --napoleon-docstrings
To integrate with Azure Pipelines without rewriting the test names based on the docstrings, you can use the --ignore-docstrings
flag:
- script: |
pip install pytest pytest-azurepipelines
pytest tests/ --test-run-title="Windows Test with junitxml" --ignore-docstrings
From version 0.6.0, pytest will upload successful coverage data into a format that Azure supports and package the htmlcov directory into a ZIP file as an artifact for the build.
To use this feature, add the --cov
flag with (optional, but required) path to your code files and also ensure you add --cov-report html
as an option.
- script: |
pip install pytest pytest-azurepipelines pytest-cov
pytest tests/ --cov my_project --cov-report html
Contributions are very welcome.
Distributed under the terms of the MIT license, "pytest-azurepipelines" is free and open source software
If you encounter any problems, please file an issue along with a detailed description.