Ignixa.ConformanceMatrix.Cli
0.6.74-beta
dotnet tool install --global Ignixa.ConformanceMatrix.Cli --version 0.6.74-beta
dotnet new tool-manifest
dotnet tool install --local Ignixa.ConformanceMatrix.Cli --version 0.6.74-beta
#tool dotnet:?package=Ignixa.ConformanceMatrix.Cli&version=0.6.74-beta&prerelease
nuke :add-package Ignixa.ConformanceMatrix.Cli --version 0.6.74-beta
Ignixa.ConformanceMatrix.Cli
ignixa-matrix runs folders of FHIR TestScript conformance
suites against a live FHIR server and merges per-implementation reports into a publishable
conformance matrix.
Installation
dotnet tool install -g Ignixa.ConformanceMatrix.Cli
Usage
Run a conformance suite against a server. --out is the report file; --format selects its shape,
defaulting to a FHIR Bundle of TestReport resources — one per executed TestScript:
ignixa-matrix run --server https://your-fhir-server --tests ./src/Core/Ignixa.TestScript.Suites/testscripts \
--impl my-server --out ./reports/my-server.json
To authenticate requests, supply an auth header value:
ignixa-matrix run --server https://your-fhir-server --tests ./src/Core/Ignixa.TestScript.Suites/testscripts \
--impl my-server --out ./reports/my-server.json \
--auth-header "Bearer <token>"
merge consumes this tool's native per-implementation report rather than FHIR TestReport, so pass
--format json when the run feeds the matrix:
ignixa-matrix run --server https://your-fhir-server --tests ./src/Core/Ignixa.TestScript.Suites/testscripts \
--impl my-server --out ./reports/my-server.json --format json
Merge per-implementation reports into the matrix output (runs/ + index.json):
ignixa-matrix merge --results ./reports --out ./matrix \
--commit "$(git rev-parse HEAD)" --branch main
--format
| Value | Output |
|---|---|
fhir (default) |
A FHIR Bundle (type: collection) — a TestReport per executed TestScript, plus an OperationOutcome per script that could not be run. |
json |
This tool's native per-implementation report — the shape merge reads. |
Behavior
runexits non-zero when any test fails or errors — an engine or transport error is never reported as a pass. Crashed scripts are recorded aserrorcells rather than aborting the run, and parse warnings are printed per file.- Scripts that never ran — a file that failed to parse, or one whose execution threw — have no
TestReportto speak for them, so under--format fhireach is recorded as anOperationOutcomeentry:structurefor a parse failure,exceptionfor an evaluator error, with the file name indiagnostics. Without these, a suite whose scripts all failed to parse would write aBundlewith no entries, indistinguishable from a clean run of nothing. --fhir-versionsets thefhirVersionparameter on theAcceptheader for version-gated suites.mergereplaces an existing run with the same id instead of duplicating it, and refuses to proceed when a report file is unreadable.
Exit codes
run distinguishes a broken invocation from a completed run with failures, so CI can tell "nothing
ran" from "the suite ran and 3 tests failed":
| Code | Meaning |
|---|---|
0 |
Every test passed or was skipped. |
1 |
The suite ran; at least one test failed or errored. |
2 |
Usage error — an unusable --tests, --server, --auth-header, or --out. Nothing ran. |
3 |
Unexpected internal failure. The full exception, including its stack and inner chain, is printed to stderr. |
--out is validated before the suite runs, so a bad path fails fast rather than discarding a
completed run against a live server.
Built on the Ignixa.TestScript execution engine.
| 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. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.6.74-beta | 74 | 9/3/2026 |
| 0.6.73-beta | 66 | 9/2/2026 |
| 0.6.68-beta | 79 | 8/24/2026 |
| 0.6.41-beta | 81 | 7/27/2026 |
| 0.6.28-beta | 77 | 7/22/2026 |
| 0.6.19-beta | 88 | 7/12/2026 |
| 0.6.7-beta | 85 | 7/9/2026 |
| 0.6.4-beta | 95 | 7/5/2026 |
| 0.5.13-beta | 88 | 7/3/2026 |
| 0.5.11-beta | 76 | 7/2/2026 |
| 0.5.6-beta | 89 | 6/17/2026 |
| 0.5.2-beta | 77 | 6/16/2026 |
| 0.5.0-beta | 86 | 6/15/2026 |