Skip to content
SPECIFICTION
Get listed

cfn-lint vs terraform-plugin-testing

cfn-lint

github.com

terraform-plugin-testing

github.com

Side by side

Figurecfn-lintterraform-plugin-testing
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
WindowsYes—
macOSYesYes
LinuxYesYes
Self-hostedYes—
Plans published11
Spec score · Infrastructure Testing Tools8.1 (#8)7.2 (#21)
LicenseThe repository identifies its license as MIT No Attribution, which grants use, copying, modification, distribution, sublicensing, and sale without restriction.The project is licensed under Mozilla Public License v2.0.
Purposecfn-lint validates AWS CloudFormation YAML and JSON templates against resource provider schemas and additional checks, including valid property values and best practices.terraform-plugin-testing is a Go helper module for testing Terraform providers.

Plans

cfn-lint

  • cfn-lintFree

cfn-lint pricing →

terraform-plugin-testing

  • Open sourceFree

terraform-plugin-testing pricing →

In their own words

cfn-lint

cfn-lint is a free, open-source validator for AWS CloudFormation YAML and JSON templates. It checks templates against resource provider schemas and applies additional rules, including validation of property values and best practices. AWS Serverless Application Model templates are processed after transformation with AWS SAM. Users can configure built-in checks through command-line options, configuration files, or CloudFormation template metadata, and can add custom rules. Results can be emitted as quiet, parseable, JSON, JUnit, pretty, or SARIF output. Installation options documented by the project include pip, Homebrew for macOS, and Docker; supported Python versions are 3.10 through 3.14. Listed integrations include Atom, Emacs, NeoVim/Vim, Sublime, Visual Studio Code, IntelliJ IDEA, GitHub Actions, and pre-commit. The project treats complex template-value validation as best effort and does not fail merely because it cannot interpret or translate a value. The repository identifies its license as MIT No Attribution, and the plan costs nothing.

Visit github.com

terraform-plugin-testing

terraform-plugin-testing is a free Go helper module for testing Terraform providers on Linux and macOS. It supports unit tests that exercise plugin code in isolation without network connections, and acceptance tests that run real Terraform plan, apply, refresh, and destroy operations. Acceptance testing includes Lifecycle, Import, Refresh, and Query modes. The plancheck package can inspect empty or non-empty plans, resource and data source values, and actions. The statecheck package checks known values, sensitive values, and comparisons between resource or data source attributes. The framework uses a local Terraform binary with standard Go testing tools, including go test and the testing package, so tests can run in continuous integration environments such as GitHub Actions. Acceptance runs may create and destroy infrastructure, which can consume quotas and incur expenses. Prerequisites include a recent stable Go release, Terraform CLI 0.12.26 or later, provider and resource access, and TF_ACC set to a value. The project uses Mozilla Public License v2.0.

Visit github.com