helm-unittest
helm-unittest is a BDD-style unit testing framework for Kubernetes Helm charts, packaged as a Helm plugin. It lets you write tests in YAML to validate chart behavior without deploying to a cluster, supporting snapshot testing, template rendering validation, and CI/CD integration.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | helm-unittest/helm-unittest |
| Owner | helm-unittest |
| Primary language | Go |
| License | MIT — OSI-approved |
| Stars | 1.4k |
| Forks | 317 |
| Open issues | 80 |
| Latest release | v1.1.1 (2026-06-05) |
| Last updated | 2026-06-24 |
| Source | https://github.com/helm-unittest/helm-unittest |
What helm-unittest is
Go-based plugin that performs local template rendering and assertion testing against Helm charts using pure YAML test suites. Supports wildcard template selection, value injection, snapshot testing, subchart testing, and multiple output formats (JUnit, NUnit, XUnit) for CI pipelines.
Get the helm-unittest source
Clone the repository and explore it locally.
git clone https://github.com/helm-unittest/helm-unittest.gitcd helm-unittest# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
Implementation considerations
- Test files must follow naming convention (`*_test.yaml`) and be placed in `tests/` directory by default; glob patterns can customize this with `-f` flag.
- Add `tests` to `.helmignore` to prevent test files from being packaged into released charts.
- Snapshot testing requires careful `.helmignore` setup to avoid rendering snapshots on subsequent runs; document snapshot update process for team.
- Templated test suites (using `--chart-tests-path`) require a separate Helm chart structure; do not co-locate with standard test files.
- Output format selection (JUnit, NUnit, XUnit) depends on CI/CD platform integration; verify compatibility with your pipeline tools.
When to avoid it — and what to weigh
- You need runtime cluster behavior testing — helm-unittest validates template output and static assertions only; it cannot test actual pod scheduling, network policies, or runtime behavior.
- Your charts rely on dynamic external data — Tests are best suited to static or value-injected configurations; external API calls or live service discovery during rendering are not supported.
- You require security scanning or compliance validation — While useful for structure validation, this tool is not a policy engine or compliance scanner; pair with separate tools (e.g., Kyverno, OPA) for security gates.
- Your team is unfamiliar with YAML or Helm internals — Effective test writing requires understanding Helm template syntax, YAML structure, and JSONPath; steep learning curve for non-infrastructure teams.
License & commercial use
MIT License. Permissive OSI-compliant license allowing commercial use, modification, and distribution with attribution. No restrictions on proprietary use.
MIT License explicitly permits commercial use without licensing fees or restrictions. Safe for proprietary chart testing in production environments. No warranty provided; review liability terms as part of your risk assessment.
DEV.co evaluation signals
Editorial assessment — not user reviews. Directional, with an explicit confidence level.
| Signal | Assessment |
|---|---|
| Maintenance | Active |
| Documentation | Adequate |
| License clarity | Clear |
| Deployment complexity | Low |
| DEV.co fit | Strong |
| Assessment confidence | High |
No security analysis performed. Consider: (1) Plugin installation over HTTPS; GPG verification available for signed releases. (2) Test files containing sensitive values should be stored securely (not in VCS unencrypted). (3) Local rendering reduces attack surface vs. cluster-based testing, but rendered YAML may expose secrets if not filtered. (4) Dependency on Go stdlib and Helm binary; monitor upstream for vulnerabilities. (5) OpenSSF Best Practices badge suggests some security practices are in place; review project scorecard for details.
Alternatives to consider
Kube-score
Static analysis and scoring of Kubernetes manifests; focuses on best practices and security compliance rather than BDD-style unit testing.
Kubeval
Validates YAML against OpenAPI schemas; lighter-weight schema validation without test suites or assertions, better for CI gates.
Conftest (OPA/Rego)
Policy-as-code framework for Kubernetes YAML; more powerful for compliance and security rules, but steeper learning curve than YAML tests.
Build on helm-unittest with DEV.co software developers
Validate chart behavior before production. Install helm-unittest as a Helm plugin and write your first test in minutes.
Talk to DEV.coRelated open-source tools
Surfaced by semantic similarity across the DEV.co open-source index.
Related on DEV.co
Explore the category and the services that help you build with it.
helm-unittest FAQ
Can helm-unittest deploy to or validate against a live cluster?
How do I test charts with external dependencies or data sources?
What is snapshot testing and when should I use it?
Does this tool enforce security or compliance policies?
Software developers & web developers for hire
Adopting helm-unittest is usually one piece of a larger software development effort. As a software development agency, DEV.co provides software development services and web development expertise — pairing senior software developers and web developers with your team to design, build, and operate open-source testing software in production.
Start Testing Your Helm Charts
Validate chart behavior before production. Install helm-unittest as a Helm plugin and write your first test in minutes.