๐งช Action: Run QA Test Suite
The unified core engine for test orchestration, featuring industrial-grade report consolidation and multi-engine support for API, GUI, and Performance tests.
[!IMPORTANT] This action represents the execution heart of the QA Hub framework. It provides standardized, timestamped, and collision-free environments for your tests to run, automatically managing HTML/XML report aggregation and seamless Jira synchronization for true End-to-End traceability.
๐ Key Impact
- ๐๏ธ Industrial Orchestration: Executes API, GUI, and Performance test suites with standardized control.
- ๐ Intelligent Reporting: Automatically organizes JUnit XML results into timestamped, project-specific directories.
- ๐ Surgical Isolation: Injects dynamic report paths into test engines to prevent cross-run collisions.
- ๐ฉบ Health Integration: Built-in support for starting background services and performing pre-flight health checks.
- ๐ค Jira Test Reporting & Rollups: Automatically reports test execution results into Jira Scenarios (Sub-tasks). Features an intelligent Status Rollup: if all Scenarios PASS, the parent Feature (Task) transitions to PASSED. If any FAIL, the Feature transitions to FAILED. Maintains an ongoing Markdown History Table.
- ๐ Execution Logs Injection: Automatically extracts
<system-out>execution logs (the exact steps run by Behave/Pytest) and injects them directly into the Jira issue description for instant debugging visibility.
๐ ๏ธ Configuration
| Input | Required | Default | Description |
|---|---|---|---|
test-command-api |
No | - | Command for API tests (e.g., pytest). |
test-command-gui |
No | - | Command for GUI tests (e.g., playwright). |
test-command-performance |
No | - | Command for Performance tests (e.g., locust). |
project-name |
No | dashboard |
Project identifier used for report folder naming. |
headless |
No | true |
Run GUI tests in headless mode. |
enable-coverage |
No | false |
Whether to collect and report code coverage. |
jira-sync |
No | false |
Enable auto-tagging of scenarios and reporting results to Jira. |
jira-url |
No | - | Your Jira domain. |
jira-user |
No | - | Email address used for Jira authentication. |
jira-token |
No | - | Jira API Token for authentication. |
jira-project-key |
No | DAS |
The Jira Project Key where UI tests should be managed. |
jira-test-status-field |
No | - | Name of a Custom Jira Field for status (optional, defaults to History Table). |
[!IMPORTANT] Dynamic Pathing & Tracking: This action automatically appends
--junit-dirto your test commands to ensure results are archived. With Jira Sync enabled, it parses the XML and injects an ADF Execution Table and Execution Logs into your Agile boards.
โก Quick Start
Basic Usage
steps:
- name: ๐งช Run Quality Suites
uses: carlos-camara/qa-hub-actions/run-tests@main
with:
project-name: "core-api"
test-command-api: "pytest tests/api"
test-command-gui: "pytest tests/gui"
Advanced Usage with Jira End-to-End Sync
steps:
- name: ๐ท๏ธ Auto-Tag Gherkin Scenarios with Jira IDs
uses: carlos-camara/qa-hub-actions/jira-auto-tagger@main
with:
jira-url: ${{ secrets.JIRA_URL }}
jira-user: ${{ secrets.JIRA_USER }}
jira-token: ${{ secrets.JIRA_API_TOKEN }}
jira-project-key: "CC"
- name: ๐งช Run Quality Suites & Report to Jira
uses: carlos-camara/qa-hub-actions/run-tests@main
with:
project-name: "dashboard"
test-command-gui: "qa-hub run --tags gui"
jira-sync: "true"
jira-url: ${{ secrets.JIRA_URL }}
jira-user: ${{ secrets.JIRA_USER }}
jira-token: ${{ secrets.JIRA_API_TOKEN }}
jira-project-key: "CC"
[View Full Wiki](https://carlos-camara.github.io/qa-hub-actions/actions/run-tests/)