Skip to content

testform providers

Ventana de terminal
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.
╵

Ventana de terminal
testform providers [DIR]

Prints the tree of provider plugins required by the active configuration:

Ventana de terminal
$ testform providers
Providers required by configuration:
.
└── provider[registry.testform.io/fromeroc9/local] 1.0.0
Ventana de terminal
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:

Ventana de terminal
$ testform providers lock
Success! Dependencies for provider "fromeroc9/github" verified and written to .testform/cache/lock.json.
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).
Ventana de terminal
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:

Ventana de terminal
$ 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 indicating Missing target directory argument.

Ventana de terminal
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.

Ventana de terminal
$ 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 rule
Resource: github_testplan
- identity: string (required)
- runs: list of testrun

Allows IDE extensions (VS Code, IntelliJ), linters, and external tooling to discover resource definitions and attributes:

Ventana de terminal
$ testform providers schema -json
{
"format_version": "1.0",
"provider_schemas": {
"registry.testform.io/fromeroc9/github": {
"provider": { ... },
"resource_schemas": {
"github_testcase": { ... },
"github_testrun": { ... },
"github_testplan": { ... }
}
}
}
}

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).

  • 0: Subcommand completed successfully.
  • 1: Provider resolution error, missing configuration files, or invalid arguments.