qase/php-commons

Library with common classes for Qase PHP reporters

2.1.2 2025-07-10 13:00 UTC

This package is auto-updated.

Last update: 2025-07-10 13:01:03 UTC


README

This module is an SDK for developing test reporters for Qase TMS. You should use it if you're developing your own test reporter for a special-purpose framework.

To report results from tests using a popular framework or test runner, don't install this module directly and use the corresponding reporter module instead:

Installation

composer require qase/php-commons

Configuration

Qase PHP Reporters can be configured in multiple ways:

  • using a config file qase.config.json
  • using environment variables

All configuration options are listed in the table below:

Description Config file Environment variable Default value Required Possible values
Common
Mode of reporter mode QASE_MODE off No testops, report, off
Fallback mode of reporter fallback QASE_FALLBACK off No testops, report, off
Environment slug environment QASE_ENVIRONMENT undefined No Any string
Root suite rootSuite QASE_ROOT_SUITE undefined No Any string
Enable debug logs debug QASE_DEBUG False No True, False
Qase Report configuration
Driver used for report mode report.driver QASE_REPORT_DRIVER local No local
Path to save the report report.connection.path QASE_REPORT_CONNECTION_PATH ./build/qase-report
Local report format report.connection.format QASE_REPORT_CONNECTION_FORMAT json json, jsonp
Qase TestOps configuration
Token for API access testops.api.token QASE_TESTOPS_API_TOKEN undefined Yes Any string
Qase API host. For enterprise users, specify address: example.qase.io testops.api.host QASE_TESTOPS_API_HOST qase.io No Any string
Qase enterprise environment testops.api.enterprise QASE_TESTOPS_API_ENTERPRISE False No True, False
Code of your project, which you can take from the URL: https://app.qase.io/project/DEMOTR - DEMOTR is the project code testops.project QASE_TESTOPS_PROJECT undefined Yes Any string
Qase test run ID testops.run.id QASE_TESTOPS_RUN_ID undefined No Any integer
Qase test run title testops.run.title QASE_TESTOPS_RUN_TITLE Automated run <Current date and time> No Any string
Qase test run description testops.run.description QASE_TESTOPS_RUN_DESCRIPTION <Framework name> automated run No Any string
Qase test run complete testops.run.complete QASE_TESTOPS_RUN_COMPLETE True True, False
Qase test run tags testops.run.tags QASE_TESTOPS_RUN_TAGS undefined No Config: array of strings, Env: comma-separated string
Qase test plan ID testops.plan.id QASE_TESTOPS_PLAN_ID undefined No Any integer
Size of batch for sending test results testops.batch.size QASE_TESTOPS_BATCH_SIZE 200 No Any integer
Enable defects for failed test cases testops.defect QASE_TESTOPS_DEFECT False No True, False
Configuration values to associate with test run testops.configurations.values QASE_TESTOPS_CONFIGURATIONS_VALUES [] No Comma-separated key=value pairs
Create configuration groups and values if they don't exist testops.configurations.createIfNotExists QASE_TESTOPS_CONFIGURATIONS_CREATE_IF_NOT_EXISTS False No True, False

Example qase.config.json config:

{
  "mode": "testops",
  "fallback": "report",
  "debug": false,
  "environment": "local",
  "captureLogs": false,
  "report": {
    "driver": "local",
    "connection": {
      "local": {
        "path": "./build/qase-report",
        "format": "json"
      }
    }
  },
  "testops": {
    "api": {
      "token": "<token>",
      "host": "qase.io"
    },
    "run": {
      "title": "Regress run",
      "description": "Regress run description",
      "complete": true,
      "tags": ["tag1", "tag2"]
    },
    "defect": false,
    "project": "<project_code>",
    "batch": {
      "size": 100
    },
    "configurations": {
      "values": [
        {
          "name": "browser",
          "value": "chrome"
        },
        {
          "name": "version",
          "value": "latest"
        },
        {
          "name": "environment",
          "value": "staging"
        }
      ],
      "createIfNotExists": true
    }
  }
}

Environment Variables Example:

You can also configure configurations using environment variables:

export QASE_TESTOPS_CONFIGURATIONS_VALUES="browser=chrome,version=latest,environment=staging"
export QASE_TESTOPS_CONFIGURATIONS_CREATE_IF_NOT_EXISTS=true

The QASE_TESTOPS_CONFIGURATIONS_VALUES should be a comma-separated list of key=value pairs.

How Configurations Work

Configurations in Qase TestOps work as follows:

  • name field represents the configuration group (e.g., "browser", "environment")
  • value field represents the configuration item within that group (e.g., "chrome", "staging")
  • When createIfNotExists is true, the system will:
    1. Create a configuration group with the specified name if it doesn't exist
    2. Create a configuration item with the specified value in that group
    3. Associate the configuration item ID with the test run