Qase.Csharp.Commons 1.1.27

dotnet add package Qase.Csharp.Commons --version 1.1.27
                    
NuGet\Install-Package Qase.Csharp.Commons -Version 1.1.27
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Qase.Csharp.Commons" Version="1.1.27" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Qase.Csharp.Commons" Version="1.1.27" />
                    
Directory.Packages.props
<PackageReference Include="Qase.Csharp.Commons" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Qase.Csharp.Commons --version 1.1.27
                    
#r "nuget: Qase.Csharp.Commons, 1.1.27"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Qase.Csharp.Commons@1.1.27
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Qase.Csharp.Commons&version=1.1.27
                    
Install as a Cake Addin
#tool nuget:?package=Qase.Csharp.Commons&version=1.1.27
                    
Install as a Cake Tool

Qase C# Commons

License NuGet Downloads

This module is an SDK for developing test reporters for Qase TestOps. It uses Qase.ApiClient.V1 and Qase.ApiClient.V2 as API clients.

Used By

To report results from tests using a popular framework, use one of these reporters instead:

You should only use this package directly if you're developing a custom reporter for a specialized test framework.

Configuration

Qase C# 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 CLI option Default value Required Possible values
Common
Mode of reporter mode QASE_MODE QASE_MODE off No testops, report, off
Fallback mode of reporter fallback QASE_FALLBACK QASE_FALLBACK off No testops, report, off
Environment environment QASE_ENVIRONMENT QASE_ENVIRONMENT undefined No Any string
Root suite rootSuite QASE_ROOT_SUITE QASE_ROOT_SUITE undefined No Any string
Enable debug logs debug QASE_DEBUG QASE_DEBUG False No True, False
Logging configuration
Enable console output logging.console QASE_LOGGING_CONSOLE QASE_LOGGING_CONSOLE True No True, False
Enable file output logging.file QASE_LOGGING_FILE QASE_LOGGING_FILE False (True when debug=true) No True, False
Qase Report configuration
Driver used for report mode report.driver QASE_REPORT_DRIVER QASE_REPORT_DRIVER local No local
Path to save the report report.connection.path QASE_REPORT_CONNECTION_PATH QASE_REPORT_CONNECTION_PATH ./build/qase-report
Local report format report.connection.format QASE_REPORT_CONNECTION_FORMAT QASE_REPORT_CONNECTION_FORMAT json json, jsonp
Qase TestOps configuration
Token for API access testops.api.token QASE_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_TESTOPS_API_HOST qase.io No Any string
Qase enterprise environment testops.api.enterprise QASE_TESTOPS_API_ENTERPRISE QASE_TESTOPS_API_ENTERPRISE False No True, False
Timeout of a single API request, in seconds testops.api.timeout QASE_TESTOPS_API_TIMEOUT QASE_TESTOPS_API_TIMEOUT 30 No Any positive integer
Number of retries for a failed results upload testops.api.retries QASE_TESTOPS_API_RETRIES QASE_TESTOPS_API_RETRIES 3 No 0 or any positive integer
Base delay of the exponential retry backoff, in seconds testops.api.retryBackoff QASE_TESTOPS_API_RETRY_BACKOFF QASE_TESTOPS_API_RETRY_BACKOFF 1 No Any positive number
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 QASE_TESTOPS_PROJECT undefined Yes Any string
Qase test run ID testops.run.id QASE_TESTOPS_RUN_ID QASE_TESTOPS_RUN_ID undefined No Any integer
Qase test run title testops.run.title QASE_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 QASE_TESTOPS_RUN_DESCRIPTION <Framework name> automated run No Any string
Qase test run complete testops.run.complete QASE_TESTOPS_RUN_COMPLETE QASE_TESTOPS_RUN_COMPLETE True True, False
Qase test run tags testops.run.tags QASE_TESTOPS_RUN_TAGS QASE_TESTOPS_RUN_TAGS [] No Array of strings
External link type for test run testops.run.externalLink.type QASE_TESTOPS_RUN_EXTERNAL_LINK_TYPE QASE_TESTOPS_RUN_EXTERNAL_LINK_TYPE None, don't add external link No jiraCloud, jiraServer
External link URL for test run testops.run.externalLink.link QASE_TESTOPS_RUN_EXTERNAL_LINK_URL QASE_TESTOPS_RUN_EXTERNAL_LINK_URL None, don't add external link No Any string (e.g., "PROJ-1234")
Qase test plan ID testops.plan.id QASE_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 QASE_TESTOPS_BATCH_SIZE 200 No 1200
Enable defects for failed test cases testops.defect QASE_TESTOPS_DEFECT QASE_TESTOPS_DEFECT False No True, False
Configuration values for test run testops.configurations.values QASE_TESTOPS_CONFIGURATIONS_VALUES QASE_TESTOPS_CONFIGURATIONS_VALUES [] No Comma-separated key=value pairs
Whether to create configuration groups and values if they don't exist testops.configurations.createIfNotExists QASE_TESTOPS_CONFIGURATIONS_CREATE_IF_NOT_EXISTS QASE_TESTOPS_CONFIGURATIONS_CREATE_IF_NOT_EXISTS False No True, False
Filter results by status testops.statusFilter QASE_TESTOPS_STATUS_FILTER QASE_TESTOPS_STATUS_FILTER None, don't filter any results No Comma-separated list of statuses
Whether to show public report link after test run completion testops.showPublicReportLink QASE_TESTOPS_SHOW_PUBLIC_REPORT_LINK QASE_TESTOPS_SHOW_PUBLIC_REPORT_LINK False No True, False
Status mapping for test results statusMapping QASE_STATUS_MAPPING QASE_STATUS_MAPPING None, don't map any statuses No JSON object or comma-separated key=value pairs

Running from a test plan

Setting testops.plan.id creates the test run from an existing test plan, so the run is scoped to that plan's cases instead of being a standalone run. The plan is resolved by Qase when the run is created — the reporter still submits results for whichever tests the framework actually executes.

The option is ignored when testops.run.id is set: an existing run is reused as is, and no new run is created for the plan to apply to.

Retries and timeouts

Uploading test results is the one call worth retrying, and it is safe to retry because every result carries an id that Qase uses to deduplicate a batch it has already accepted.

A results upload is retried on a transport failure and on HTTP 408, 429 and 5xx, with an exponential backoff of retryBackoff × 2^(attempt-1). It is not retried on 400, 401, 403, 404, 413, 422 or 507 — those fail identically on a second attempt. When a 429 carries a Retry-After header, that value is used instead of the computed backoff; Qase sends roughly 60 seconds, which a short backoff ladder would not survive. timeout applies to each attempt, not to the chain as a whole.

Creating and completing a test run is not retried: those calls carry no idempotency key, so a replay could create a second run. They still honour timeout.

If a batch cannot be uploaded even after the retries, the reporter logs an error naming how many results were lost and leaves the test run open. A completed run over partial data looks trustworthy and is not.

Example qase.config.json config

{
  "mode": "testops",
  "fallback": "report",
  "debug": false,
  "environment": "local",
  "logging": {
    "console": true,
    "file": false
  },
  "report": {
    "driver": "local",
    "connection": {
      "local": {
        "path": "./build/qase-report",
        "format": "json"
      }
    }
  },
  "testops": {
    "api": {
      "token": "<token>",
      "host": "qase.io",
      "timeout": 30,
      "retries": 3,
      "retryBackoff": 1
    },
    "run": {
      "title": "Regress run",
      "description": "Regress run description",
      "complete": true,
      "tags": ["tag1", "tag2"],
      "externalLink": {
        "type": "JiraCloud",
        "link": "PROJ-1234"
      }
    },
    "plan": {
      "id": 123
    },
    "defect": false,
    "showPublicReportLink": false,
    "project": "<project_code>",
    "batch": {
      "size": 100
    },
    "configurations": {
      "values": [
        {
          "name": "Browser",
          "value": "Chrome"
        },
        {
          "name": "Environment",
          "value": "Production"
        }
      ],
      "createIfNotExists": true
    },
    "statusFilter": ["passed", "failed"]
  },
  "statusMapping": {
    "invalid": "failed",
    "skipped": "passed"
  }
}

Logging Configuration

Control logging output with the logging option:

Disable console output (only log to file):

{
  "debug": true,
  "logging": {
    "console": false
  }
}

Disable all logging:

{
  "logging": {
    "console": false,
    "file": false
  }
}

Environment variables:

  • QASE_LOGGING_CONSOLE - enable/disable console output (default: true)
  • QASE_LOGGING_FILE - enable/disable file output (default: false, true when debug=true)

Note: Log level is controlled by the debug parameter:

  • debug: true - Debug level (detailed logs)
  • debug: false - Information level (standard logs)
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on Qase.Csharp.Commons:

Package Downloads
Qase.XUnit.Reporter

xUnit Integration with Qase TMS

Qase.NUnit.Reporter

NUnit Integration with Qase TMS

Qase.XUnit.V3.Reporter

xUnit v3 Integration with Qase TMS

Qase.MSTest.Reporter

MSTest Integration with Qase TMS

Qase.Reqnroll.Reporter

Reqnroll Integration with Qase TMS

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.27 153 9/2/2026
1.1.26 213 8/27/2026
1.1.25 226 8/25/2026
1.1.24 262 8/17/2026
1.1.23 250 8/11/2026
1.1.22 484 7/7/2026
1.1.21 435 6/29/2026
1.1.20 448 6/25/2026
1.1.19 585 6/10/2026
1.1.18 3,459 4/23/2026
1.1.17 304 4/21/2026
1.1.16 533 4/14/2026
1.1.15 290 4/7/2026
1.1.14 288 4/7/2026
1.1.13 286 4/2/2026
1.1.12 238 3/26/2026
1.1.11 436 3/25/2026
1.1.10 243 3/25/2026
1.1.9 330 3/18/2026
1.1.8 1,556 3/11/2026
Loading failed