Skip to content

Get pytest resport. #20

Get pytest resport.

Get pytest resport. #20

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: Install xmlstarlet
run: sudo apt-get update && sudo apt-get install -y xmlstarlet
- name: Extract test counts
run: |
failed=$(xmlstarlet sel -t -v "count(//testcase[failure])" pytest-report.xml)
succeeded=$(xmlstarlet sel -t -v "count(//testcase[not(failure)])" pytest-report.xml)
errored=$(xmlstarlet sel -t -v "count(//testcase[error])" pytest-report.xml)
skipped=$(xmlstarlet sel -t -v "count(//testcase[skipped])" pytest-report.xml)
unknown=$(xmlstarlet sel -t -v "count(//testcase[not(failure) and not(error) and not(skipped)])" pytest-report.xml)
echo "FAILED=${failed}" >> $GITHUB_ENV
echo "SUCCEEDED=${succeeded}" >> $GITHUB_ENV
echo "ERRORED=${errored}" >> $GITHUB_ENV
echo "SKIPPED=${skipped}" >> $GITHUB_ENV
echo "UNKNOWN=${unknown}" >> $GITHUB_ENV
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: GitHub Actions
title: Pytest Report
fields: |
Name: ${{ github.workflow }}
Status: ${{ job.status }}
Failed: ${{ env.FAILED }}
Succeeded: ${{ env.SUCCEEDED }}
Errored: ${{ env.ERRORED }}
Skipped: ${{ env.SKIPPED }}
Unknown: ${{ env.UNKNOWN }}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
- name: Setup tmate debug session on failure
if: ${{ failure() }}
uses: mxschmitt/action-tmate@v3