UnitTesting
This template runs multiple jobs from a matrix as a cross of Python versions and systems. The summary report in junit XML format is optionally uploaded as an artifact.
Configuration options to pytest
should be given via section [tool.pytest.ini_options]
in a pyproject.toml
file.
Behavior:
Checkout repository
Setup Python and install dependencies
Run unit tests using
pytest
.Upload junit test summary as an artifact
Dependencies:
Instantiation
Simple Example
jobs:
Params:
# ...
UnitTesting:
uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@r0
needs:
- Params
with:
jobs: ${{ needs.Params.outputs.python_jobs }}
artifact: ${{ fromJson(needs.Params.outputs.artifact_names).unittesting }}
Complex Example
TBD
Parameters
jobs
Parameter Name |
Required |
Type |
Default |
---|---|---|---|
jobs |
yes |
string |
— — — — |
JSON list with environment fields, telling the system and Python versions to run tests with.
requirements
Parameter Name |
Required |
Type |
Default |
---|---|---|---|
requirements |
optional |
string |
|
Python dependencies to be installed through pip.
pacboy
Parameter Name |
Required |
Type |
Default |
---|---|---|---|
pacboy |
optional |
string |
|
Additional MSYS2 dependencies to be installed through pacboy (pacman).
Internally, a workflow step reads the requirements file for Python and compares requested packages with a list of packages that should be installed through pacman/pacboy compared to installation via pip. These are mainly core packages or packages with embedded C code.
pacboy: >-
python-lxml:p
mingw_requirements
Parameter Name |
Required |
Type |
Default |
---|---|---|---|
mingw_requirements |
optional |
string |
|
Override Python dependencies to be installed through pip on MSYS2 (MINGW64) only.
tests_directory
Parameter Name |
Required |
Type |
Default |
---|---|---|---|
tests_directory |
optional |
string |
|
Path to the directory containing tests (test working directory).
unittest_directory
Parameter Name |
Required |
Type |
Default |
---|---|---|---|
unittest_directory |
optional |
string |
|
Path to the directory containing unit tests (relative to tests_directory).
artifact
Parameter Name |
Required |
Type |
Default |
---|---|---|---|
artifact |
optional |
string |
|
Generate unit test report with junitxml and upload results as an artifact.
Secrets
This job template needs no secrets.
Results
This job template has no output parameters.