QaaS.Runner
4.5.2
dotnet add package QaaS.Runner --version 4.5.2
NuGet\Install-Package QaaS.Runner -Version 4.5.2
<PackageReference Include="QaaS.Runner" Version="4.5.2" />
<PackageVersion Include="QaaS.Runner" Version="4.5.2" />
<PackageReference Include="QaaS.Runner" />
paket add QaaS.Runner --version 4.5.2
#r "nuget: QaaS.Runner, 4.5.2"
#:package QaaS.Runner@4.5.2
#addin nuget:?package=QaaS.Runner&version=4.5.2
#tool nuget:?package=QaaS.Runner&version=4.5.2
QaaS.Runner
Execution orchestration package for running QaaS test workflows from YAML configuration.
Contents
Overview
This repository contains one solution: QaaS.Runner.sln.
QaaS.Runner is published to NuGet and includes the runner runtime plus packaged project outputs from this solution that are required at runtime (sessions/assertions/storage orchestration flow).
Packages
| Package | Latest Version | Total Downloads |
|---|---|---|
| QaaS.Runner |
Projects
QaaS.Runner
- CLI/bootstrap entrypoint for
run,act,assert,template, andexecuteverbs. - Builds execution contexts and routes each execution type through the right logic chain.
- Orchestrates setup/teardown, optional Allure result serving, and optional ReportPortal launch finalization.
QaaS.Runner.Assertions
- Builds assertion runtime objects from configured hooks and filters.
- Executes assertions against session/data-source outputs.
- Writes Allure results, links, and attachments.
- Can also publish the same runner-produced assertion results into ReportPortal.
QaaS.Runner.Sessions
- Session runtime with staged action execution.
- Supports publishers, consumers, transactions, probes, and collectors.
- Produces session data and failure/flakiness metadata.
QaaS.Runner.Storage
- Storage abstraction for storing and retrieving serialized session data.
- Built-in implementations: filesystem and S3-compatible backends.
- Shared builder-based configuration for act/assert flows.
QaaS.Runner.Infrastructure
- Small shared cross-project helpers (filesystem and date/time utilities).
Quick Start
Install package:
dotnet add package QaaS.Runner
Upgrade package:
dotnet add package QaaS.Runner --version <target-version>
dotnet restore
ReportPortal
QaaS can publish the same assertion results it already writes to Allure into an existing ReportPortal instance.
Runtime rules:
- QaaS never creates ReportPortal projects, dashboards, filters, users, or API keys.
- Project routing is derived only from
MetaData.Team, case-insensitively. - Launches are grouped by
Team + System. ExtraLabelsand other metadata key/value pairs are emitted as ReportPortal attributes so teams can filter by labels such asComponent,Area, orOwner.- Each assertion is published as its own ReportPortal test item together with assertion message/trace, stack trace for broken assertions, session summaries, session failure history, assertion attachments, template YAML, and a generated assertion-context JSON artifact.
- Assertion links configured in QaaS remain active in Allure and are also written into ReportPortal logs.
- When ReportPortal is enabled but the endpoint, API key, or target project is invalid, QaaS logs a warning and skips ReportPortal publishing without crashing the runner or changing the exit code for otherwise passing runs.
- The default launch name is stable and derived from
Team + System + Sessions, which keeps ReportPortal history grouped without creating new dashboards or projects.
Configuration sources:
| Setting | Default source | Override source | Notes |
|---|---|---|---|
ReportPortal.Enabled |
QaaS.Configuration.ReportPortalDefaults.Enabled (false in the public package) |
YAML ReportPortal.Enabled |
Enables best-effort ReportPortal publishing. |
ReportPortal.Endpoint |
QaaS.Configuration.ReportPortalDefaults.ReportPortalUri |
YAML ReportPortal.Endpoint |
Required when reporting is enabled. Must point to the ReportPortal base URL or API URL. |
ReportPortal.ApiKey |
QaaS.Configuration.ReportPortalDefaults.ReportPortalApiKey |
YAML ReportPortal.ApiKey |
Required when reporting is enabled. Must already have write access to the target team projects. |
ReportPortal.Project |
none | YAML ReportPortal.Project |
Ignored at runtime. QaaS warns and continues to route by MetaData.Team. |
Notes:
- Public
QaaS.Configurationkeeps ReportPortal disabled with null endpoint/key. Internal environments can publish a same-IDQaaS.Configurationpackage with internal ReportPortal defaults. - YAML
ReportPortalvalues always overrideQaaS.Configurationdefaults for that run. - Launch names are derived from the grouped team, system, and sessions unless you explicitly override the launch name/description in YAML.
- Allure remains active and unchanged when ReportPortal publishing is enabled.
Documentation
- Official docs: thesmoketeam.github.io/qaas-docs
- CI workflow:
.github/workflows/ci.yml - NuGet package page: QaaS.Runner on NuGet
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- Allure.Commons (>= 3.5.0.73)
- Autofac (>= 9.1.0)
- CommandLineParser (>= 2.9.1)
- Microsoft.CodeAnalysis.Common (>= 5.3.0)
- Microsoft.Extensions.Configuration (>= 10.0.5)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.5)
- Microsoft.Extensions.Configuration.Json (>= 10.0.5)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.5)
- morelinq (>= 4.4.0)
- QaaS.Runner.Assertions (>= 4.5.2)
- QaaS.Runner.Sessions (>= 4.5.2)
- QaaS.Runner.Storage (>= 4.5.2)
- Serilog.Extensions.Logging (>= 10.0.0)
- Serilog.Settings.Configuration (>= 10.0.0)
- Serilog.Sinks.Console (>= 6.1.1)
- System.IO.Abstractions (>= 22.1.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on QaaS.Runner:
| Package | Downloads |
|---|---|
|
QaaS.Runner.E2ETests
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.5.2 | 98 | 6/14/2026 |
| 4.5.1 | 106 | 6/7/2026 |
| 4.5.0 | 103 | 5/27/2026 |
| 4.4.0 | 96 | 5/20/2026 |
| 4.3.3 | 112 | 4/16/2026 |
| 4.3.2 | 114 | 4/15/2026 |
| 4.3.1 | 110 | 4/13/2026 |
| 4.3.0 | 122 | 3/31/2026 |
| 4.2.1 | 175 | 3/28/2026 |
| 4.2.0 | 103 | 3/26/2026 |
| 4.1.1 | 117 | 3/23/2026 |
| 4.1.1-alpha.1 | 52 | 3/22/2026 |
| 4.1.0 | 123 | 3/21/2026 |
| 4.1.0-alpha.27 | 50 | 3/22/2026 |
| 4.1.0-alpha.26 | 53 | 3/22/2026 |
| 4.1.0-alpha.25 | 55 | 3/21/2026 |
| 4.1.0-alpha.23 | 54 | 3/21/2026 |
| 4.1.0-alpha.22 | 60 | 3/17/2026 |
| 4.1.0-alpha.21 | 53 | 3/17/2026 |
| 4.1.0-alpha.20 | 52 | 3/17/2026 |