This GitHub Action allows you to run pytest
and output GitHub Job Summaries. For creating the job summaries, this action uses pytest-md
and pytest-emoji
.
- name: Run pytest
uses: quantco/pytest-action@v2
with:
verbose: true
emoji: true
job-summary: true
custom-arguments: '-q'
click-to-expand: true
report-title: 'Test Report'
You need to have Python as well as pytest
installed in your pipeline before you can run this action. If job-summary
is set to true
, you also need to install pytest-md
. If emoji
is set to true
, you need to install pytest-emoji
.
When job-summary
is set to true
, the action will output a Job Summary.
parameter | description | required | default |
---|---|---|---|
job-summary | Print a GitHub job summary | false |
true |
verbose | Verbose output | false |
true |
emoji | Use emojis in the output | false |
true |
custom-arguments | Custom arguments to pass to pytest | false |
|
custom-pytest | Custom command to replace the pytest call. Can be a custom executable or something like poetry run pytest or micromamba run -n myenv pytest . |
false |
pytest |
report-title | Title of the report | false |
Test Report |
click-to-expand | Add 'Click to expand' to the report | false |
true |
If you want to change the time zone of the job summary, you may want to use the szenius/set-timezone action:
- name: Set timezone
uses: szenius/set-timezone@ce9c440bc3af4f51b28d7ef7e5c47ee8f26c8dcb
with:
timezone: 'Europe/Berlin'
This action uses bash -l {0}
as the shell to run pytest
in,
i.e., the login shell that also sources your .bash_profile
.
When using bash
in GitHub Actions, it doesn't source your .bash_profile
by default.
If you want to use a conda
environment, you need to make sure to add it into your .bash_profile
s.t.
the conda
environment automatically gets activated.
mamba-org/setup-micromamba
does this automatically for you.
- uses: mamba-org/setup-micromamba@v1
with:
environment-name: myenv
create-args: >-
python=3.11
pytest
numpy
pytest-md
pytest-emoji
# first checkout and then use the action because dependabot crashes when it sees private repositories
- name: Checkout quantco/pytest-action
uses: actions/checkout@v3
with:
repository: quantco/pytest-action
ref: v2
token: ${{ secrets.FQ_GH_TOKEN }}
path: .github/pytest-action
- name: Run unittests
uses: ./.github/pytest-action
name: Run Python tests
on: [push]
jobs:
build:
name: Run tests
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.6", "3.7", "3.8", "3.9"]
steps:
- uses: szenius/set-timezone@ce9c440bc3af4f51b28d7ef7e5c47ee8f26c8dcb
with:
timezoneLinux: "Europe/Berlin"
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: pip install pytest pytest-md pytest-emoji
# first checkout and then use the action because dependabot crashes when it sees private repositories
- name: Checkout quantco/pytest-action
uses: actions/checkout@v3
with:
repository: quantco/pytest-action
ref: v2
token: ${{ secrets.FQ_GH_TOKEN }}
path: .github/pytest-action
- name: Run unittests
uses: ./.github/pytest-action
with:
emoji: false
verbose: false
job-summary: true