testform providers
testform [global options] providers [subcommand] [options] [DIR]The testform providers command inspects the referenced configuration and outputs a tree of all provider requirements across the root module and any child modules. It also provides subcommands to lock dependency checksums (lock), mirror plugins for air-gapped environments (mirror), and export machine-readable JSON schemas (schema).
If executed in a directory without configuration files (main.yml, etc.), it outputs a diagnostic message matching Terraform parity and exits with code 1:
╷│ Error: No configuration files││ The directory C:\Users\flavi\Desktop\auth contains no Testform configuration files.╵Subcommands
Section titled “Subcommands”1. Provider Requirements Tree (default)
Section titled “1. Provider Requirements Tree (default)”testform providers [DIR]Prints the tree of provider plugins required by the active configuration:
$ testform providers
Providers required by configuration:.└── provider[registry.testform.io/fromeroc9/local] 1.0.02. testform providers lock
Section titled “2. testform providers lock”testform providers lock [options] [providers...]Normally the dependency lock file (.testform/cache/lock.json) is updated automatically by testform init. The lock subcommand allows explicitly updating and verifying cryptographic checksums across target platforms against origin registries, ensuring reproducible and immutable CI/CD builds:
$ testform providers lock
Success! Dependencies for provider "fromeroc9/github" verified and written to .testform/cache/lock.json.lock Options:
Section titled “lock Options:”| Option | Description |
|---|---|
-platform=os_arch |
Request package checksums for a specific platform (e.g. linux_amd64, windows_amd64, darwin_arm64). Can be specified multiple times. |
-fs-mirror=dir |
Consult a filesystem mirror directory instead of the origin registry. |
-net-mirror=url |
Consult a network mirror base URL instead of the origin registry. |
-enable-plugin-cache |
Enable global plugin cache to speed up locking. |
-test-directory=path |
Set the Testform test directory (defaults to tests). |
-var 'foo=bar' |
Set an input variable in the root module. |
-var-file=filename |
Load variable values from a file (testform.vars.yml or *.auto.vars.yml). |
3. testform providers mirror
Section titled “3. testform providers mirror”testform providers mirror [options] <target-dir>Populates a local directory with copies of provider plugins needed for the configuration. This directory can be used directly as a filesystem mirror or as the basis for a static HTTP server (network mirror), allowing Testform execution in isolated or air-gapped environments without internet access:
$ testform providers mirror ./vendor-plugins- Mirroring provider "fromeroc9/github" to ./vendor-plugins...
Success! Provider plugins mirrored to ./vendor-plugins.[!NOTE] The
<target-dir>argument is mandatory. If omitted, Testform raises an error indicatingMissing target directory argument.
4. testform providers schema
Section titled “4. testform providers schema”testform providers schema [options]Inspects the resource schema declarations (attributes, data types, and required constraints for testcase, testrun, and testplan) exposed by the active provider.
Human-Readable Mode:
Section titled “Human-Readable Mode:”$ testform providers schema
Provider Schema: fromeroc9/github──────────────────────────────────────────────────Resource: github_testcase - identity: string (required) - title: string (optional) - labels: list of string (optional) - assignees: list of string (optional) - custom_fields: map of string (optional)Resource: github_testrun - identity: string (required) - rules: list of ruleResource: github_testplan - identity: string (required) - runs: list of testrunJSON Mode (-json):
Section titled “JSON Mode (-json):”Allows IDE extensions (VS Code, IntelliJ), linters, and external tooling to discover resource definitions and attributes:
$ testform providers schema -json{ "format_version": "1.0", "provider_schemas": { "registry.testform.io/fromeroc9/github": { "provider": { ... }, "resource_schemas": { "github_testcase": { ... }, "github_testrun": { ... }, "github_testplan": { ... } } } }}General Command Options
Section titled “General Command Options”| Option | Default | Description |
|---|---|---|
-test-directory=DIR |
tests |
Test directory to search for specifications. |
-var 'foo=bar' |
— | Sets an input variable in the root module. Can be specified multiple times. |
-var-file=filename |
— | Loads variable values from a file (testform.vars.yml or *.auto.vars.yml). |
Exit Codes
Section titled “Exit Codes”0: Subcommand completed successfully.1: Provider resolution error, missing configuration files, or invalid arguments.