This project tracks high‑level requirements and maps each one to the Pester test files that verify it. The authoritative mapping is stored in requirements-core.json
; the table below provides a human‑readable summary for quick reference.
If every test maps to Unmapped
, the scripts/generate-ci-summary.ts
script logs a warning. Set REQUIRE_REQUIREMENTS_MAPPING
in the environment to treat this situation as an error.
Runner Type indicates whether a requirement runs on a standard GitHub-hosted image or an integration runner with preinstalled tooling. See runner-types for guidance on choosing between them.
ID | Description | Tests | Runner | Runner Type | Skip Dry Run |
---|---|---|---|---|---|
REQ-001 | Dispatcher discovers available actions, describes them, and validates arguments. | tests/pester/Dispatcher.Tests.ps1 |
|||
REQ-002 | Dispatcher dry-run mode prints descriptions and warns on unknown arguments without executing actions. | tests/pester/Dispatcher.DryRun.Tests.ps1 |
|||
REQ-003 | Actions resolve RelativePath arguments using the action’s WorkingDirectory as the base path and pass them without warnings, including when RelativePath is ‘.’ and the WorkingDirectory targets subdirectories. | tests/pester/RelativePath.Actions.Tests.ps1 |
|||
REQ-004 | Every action script exists at the expected path. | tests/pester/ScriptPath.Tests.ps1 |
|||
REQ-005 | Dispatcher fails when RelativePath is missing or invalid after resolving it relative to the specified WorkingDirectory. | tests/pester/Dispatcher.InvalidPaths.Tests.ps1 |
|||
REQ-006 | Workflow tests the composite action defined in apply-vipc/action.yml with minimum_supported_lv_version ‘2021’, vip_lv_version ‘2021’, supported_bitness ‘64’, relative_path ‘.’, and vipc_path ‘scripts/apply-vipc/runner_dependencies.vipc’ on the GitHub-hosted Ubuntu runner labeled ubuntu-latest with dry_run true. | tests/pester/ApplyVipc.DryRunTrue.Workflow.ps1 |
ubuntu-latest | integration | false |
REQ-008 | Workflow tests the composite action defined in add-token-to-labview/action.yml on the GitHub-hosted Ubuntu runner labeled ubuntu-latest. | tests/pester/AddTokenToLabview.Workflow.ps1 |
ubuntu-latest | integration | false |
REQ-009 | Workflow tests the composite action defined in build/action.yml on the GitHub-hosted Ubuntu runner labeled ubuntu-latest. | tests/pester/Build.Workflow.ps1 |
ubuntu-latest | integration | false |
REQ-010 | Workflow tests the composite action defined in build-lvlibp/action.yml on the GitHub-hosted Ubuntu runner labeled ubuntu-latest. | tests/pester/BuildLvlibp.Workflow.ps1 |
ubuntu-latest | integration | false |
REQ-011 | Workflow tests the composite action defined in build-vi-package/action.yml on the GitHub-hosted Ubuntu runner labeled ubuntu-latest. | tests/pester/BuildViPackage.Workflow.ps1 |
ubuntu-latest | integration | false |
REQ-012 | Workflow clones an external repository and operates on it without modification using the composite action defined in close-labview/action.yml on the GitHub-hosted Ubuntu runner labeled ubuntu-latest. | tests/pester/CloseLabview.Workflow.ps1 |
ubuntu-latest | integration | false |
REQ-013 | Workflow tests the composite action defined in generate-release-notes/action.yml on the GitHub-hosted Ubuntu runner labeled ubuntu-latest. | tests/pester/GenerateReleaseNotes.Workflow.ps1 |
ubuntu-latest | integration | false |
REQ-014 | Workflow tests the composite action defined in missing-in-project/action.yml on the GitHub-hosted Ubuntu runner labeled ubuntu-latest. | tests/pester/MissingInProject.Workflow.ps1 |
ubuntu-latest | integration | false |
REQ-015 | Workflow tests the composite action defined in modify-vipb-display-info/action.yml on the GitHub-hosted Ubuntu runner labeled ubuntu-latest. | tests/pester/ModifyVipbDisplayInfo.Workflow.ps1 |
ubuntu-latest | integration | false |
REQ-016 | Workflow tests the composite action defined in prepare-labview-source/action.yml on the GitHub-hosted Ubuntu runner labeled ubuntu-latest. | tests/pester/PrepareLabviewSource.Workflow.ps1 |
ubuntu-latest | integration | false |
REQ-017 | Workflow tests the composite action defined in rename-file/action.yml on the GitHub-hosted Ubuntu runner labeled ubuntu-latest. | tests/pester/RenameFile.Workflow.ps1 |
ubuntu-latest | integration | false |
REQ-018 | Workflow tests the composite action defined in restore-setup-lv-source/action.yml on the GitHub-hosted Ubuntu runner labeled ubuntu-latest. | tests/pester/RestoreSetupLvSource.Workflow.ps1 |
ubuntu-latest | integration | false |
REQ-019 | Workflow tests the composite action defined in revert-development-mode/action.yml on the GitHub-hosted Ubuntu runner labeled ubuntu-latest. | tests/pester/RevertDevelopmentMode.Workflow.ps1 |
ubuntu-latest | integration | false |
REQ-020 | Workflow tests the composite action defined in run-unit-tests/action.yml on the GitHub-hosted Ubuntu runner labeled ubuntu-latest. | tests/pester/RunUnitTests.Workflow.ps1 |
ubuntu-latest | integration | false |
REQ-021 | Workflow tests the composite action defined in set-development-mode/action.yml on the GitHub-hosted Ubuntu runner labeled ubuntu-latest. | tests/pester/SetDevelopmentMode.Workflow.ps1 |
ubuntu-latest | integration | false |
REQ-022 | Workflow tests the composite action defined in setup-mkdocs/action.yml on the GitHub-hosted Ubuntu runner labeled ubuntu-latest. | tests/pester/SetupMkdocs.Workflow.ps1 |
ubuntu-latest | integration | false |
REQ-023 | Parser ingests JUnit XML artifacts starting at the testsuites root and iterating through nested suites and testcases. | scripts/__tests__/junit-parser.test.js |
|||
REQ-024 | Top-level testsuites attributes name, tests, errors, failures, disabled, and time are captured for summary reporting. | scripts/__tests__/junit-parser.test.js |
|||
REQ-025 | Each testsuite records attributes including name, tests, errors, failures, hostname, id, skipped, disabled, package, and time. | scripts/__tests__/junit-parser.test.js |
|||
REQ-026 | Suite properties are extracted as name/value pairs for environment details. | scripts/__tests__/junit-parser.test.js |
|||
REQ-027 | Testcase attributes name, status, classname, assertions, time, and any skip message are preserved. | scripts/__tests__/junit-parser.test.js |
|||
REQ-028 | Requirement identifiers embedded in testcase names are detected and associated with the test. | scripts/__tests__/junit-parser.test.js |
|||
REQ-029 | Test results are aggregated by requirement and by suite to count passed, failed, and skipped cases. | scripts/__tests__/junit-parser.test.js |
|||
REQ-030 | Traceability matrix links requirement IDs to testcases with status, execution time, host properties, and skipped reasons. | scripts/__tests__/junit-parser.test.js |
|||
REQ-031 | Parsing logic validates presence of required fields and reports missing or malformed data. | scripts/__tests__/junit-parser.test.js |
|||
REQ-032 | Parser tolerates and retains unknown attributes for future extensibility. | scripts/__tests__/junit-parser.test.js |
|||
REQ-033 | Tests ending with SelfHosted.Workflow.Tests.ps1 execute only in dry run mode unless the workflow targets a self-hosted Windows runner labeled self-hosted-windows-lv. | tests/pester/SelfHosted.Workflow.Tests.ps1 |
Each test file is annotated with its corresponding requirement ID to maintain traceability between requirements and test coverage.
During CI runs, scripts/generate-ci-summary.ts
writes requirement artifacts to an OS‑specific directory under artifacts/
, such as artifacts/windows/traceability.md
or artifacts/linux/traceability.md
, using the RUNNER_OS
environment variable.
Each directory also includes a summary.md
file with per‑OS totals. A typical summary might look like this:
OS | Passed | Failed | Skipped | Duration (s) | Pass Rate (%) |
---|---|---|---|---|---|
overall | 10 | 0 | 2 | 12.34 | 100.00 |
windows | 5 | 0 | 1 | 6.17 | 100.00 |
linux | 5 | 0 | 1 | 6.17 | 100.00 |