Skip to content

๐Ÿงช 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-dir to 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/)