Skip to content

Get pytest report info. #23

Get pytest report info.

Get pytest report info. #23

Workflow file for this run

name: Scheduled Tests
on:
push: {}
pull_request:
branches:
- add-scheduled-tests
# on: workflow_dispatch
jobs:
run_app_tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# python-version: [ "3.7", "3.8", "3.9", "3.10", "3.11" ]
python-version: [ "3.11" ]
steps:
- name: Get Metadata Version
id: metadataVersion
uses: satak/webrequest-action@master
with:
url: https://mygeneset.info/metadata
method: GET
- name: Show Response
run: |
echo "${{fromJson(steps.metadataVersion.outputs.output).data.build_date}}"
- name: Checkout source
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Upgrade pip
run: pip install --upgrade pip
- name: Install dependencies
run: pip install -r requirements_web.txt
- name: Install PyTest
run: pip install pytest
# - name: Run Pytest and Capture Report
# id: pytest
# run: |
# pytest src/tests/test_remote.py --junitxml=pytest_report.xml
# - name: Read Pytest Report File Content
# id: read-pytest-report
# run: |
# # Use the cat command to read the file and store its content in a variable
# pytest_report_content=$(cat pytest_report.xml)
# echo "::set-output name=content::$pytest_report_content"
# - name: Send Report to Slack
# run: |
# curl -X POST -H 'Content-type: application/json' --data '{
# "text": "Pytest Report:\n```'${{ steps.read-pytest-report.outputs.pytest_report_content }}'```"
# }' $SLACK_WEBHOOK_URL
# env:
# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
- name: Run pytest and generate report
run: pytest src/tests/test_remote.py --junitxml=pytest_report.xml
- name: Upload report to GitHub Artifacts
uses: actions/upload-artifact@v2
with:
name: pytest-report
path: pytest-report.xml
- name: Extract test counts
id: pytest
run: |
# Parse pytest report and extract desired fields
errors=$(grep -o 'errors="[^"]*"' pytest_report.xml | cut -d'"' -f2)
failures=$(grep -o 'failures="[^"]*"' pytest_report.xml | cut -d'"' -f2)
skipped=$(grep -o 'skipped="[^"]*"' pytest_report.xml | cut -d'"' -f2)
tests=$(grep -o 'tests="[^"]*"' pytest_report.xml | cut -d'"' -f2)
time=$(grep -o 'time="[^"]*"' pytest_report.xml | cut -d'"' -f2)
echo "Errors: $errors"
echo "Failures: $failures"
echo "Skipped: $skipped"
echo "Tests: $tests"
echo "Time: $time"
working-directory: ${{ github.workspace }}
continue-on-error: true # Continue even if the pytest report does not exist
# - name: Send report to Slack
# uses: 8398a7/action-slack@v3
# with:
# status: ${{ job.status }}
# author_name: GitHub Actions
# title: Pytest Report
# fields: name,status
# env:
# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
- name: Send report to Slack
uses: 8398a7/action-slack@v3
with:
status: ${{ job.status }}
author_name: Mygeneset Scheduled Pytest
# title: Pytest Report
message: |
Pytest Report:
- Errors: ${{ steps.pytest.outputs.errors }}
- Failures: ${{ steps.pytest.outputs.failures }}
- Skipped: ${{ steps.pytest.outputs.skipped }}
- Tests: ${{ steps.pytest.outputs.tests }}
- Time: ${{ steps.pytest.outputs.time }}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
# - name: Setup tmate debug session on failure
# if: ${{ failure() }}
# uses: mxschmitt/action-tmate@v3