Conftest vs Test Kitchen
Conftest
conftest.devTest Kitchen
kitchen.ciSide by side
| Figure | Conftest | Test Kitchen |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | Yes |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | — | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 1 |
| Spec score · Infrastructure Testing Tools | 8.4 (#4) | 8.2 (#7) |
| Purpose | Conftest is a utility for writing tests against structured configuration data. | Test Kitchen is a test harness for executing infrastructure code on one or more platforms in isolation. |
| Support | Questions and discussions are directed to the Open Policy Agent Slack channel `#opa-conftest`. | The documentation directs users to the #test-kitchen channel on Chef Community Slack for assistance from community members. |
Plans
In their own words
Conftest
Conftest is a free utility for testing structured configuration data, designed for use in CI environments. It uses the Open Policy Agent Rego language to express policies, then evaluates deny, violation, and warning rules within namespaces. Configuration can be read from individual files, directories, multiple files, or standard input. Supported inputs include Kubernetes-style YAML, JSON, HCL and HCL2, Dockerfiles, Terraform-related data, JSONnet, TOML, and XML. Results can be output as plaintext, JSON, TAP, table, JUnit, GitHub, Azure DevOps, or SARIF; the GitHub outputter can annotate test results in workflows. The `conftest verify` command runs policy unit tests. Policies can be pulled from HTTPS URLs, Git repositories, and OCI registries, or pushed to compatible OCI registries. Plugins extend the CLI, with downloads available from sources including OCI, Git, HTTP/HTTPS, Mercurial, and cloud storage. Pre-commit hooks support policy workflows, and integrations are documented for CircleCI, GitHub Actions, and Tekton. Conftest is available for Linux, macOS, and Windows.
Test Kitchen
Test Kitchen is a free test harness for running infrastructure code in isolation on one or more platforms. Its workflow uses create, converge, setup, verify, and destroy commands to provision environments and test infrastructure code. Documented drivers cover Amazon EC2, Apache CloudStack, DigitalOcean, Docker through Dokken, Google Cloud Platform, Hetzner Cloud, Vagrant, Azure, Hyper-V, OpenStack, and VMware products. Which drivers are available depends on the driver gems installed in the Ruby environment. Provisioning options include Chef Infra, Cinc Client, Habitat, PowerShell DSC, and shell scripts; listed verification integrations include Cinc Auditor, Chef InSpec, and Serverspec. Community plugins add Ansible, Puppet, and Salt provisioners. Installation is available through RubyGems, system packages, or Cinc Workstation, but Test Kitchen itself does not bundle Cinc or Chef tooling. Requirements include a 64-bit operating system and enabled CPU virtualization. The project uses Apache License 2.0 and points users to Chef Community Slack for community assistance. The documentation notes known issues and no current maintainer for kitchen-docker, recommending kitchen-dokken instead.