Testing Guide
This guide lists the test suites and when to run them.
Unit Tests
make test
Covers Go packages outside integration and E2E tests. Also runs generation, formatting, vet, and protobuf generation prerequisites.
Integration Tests
make test-integration
Uses envtest for controller and CRD behavior.
Race Detector
make test-race
Focused race coverage for controller, scheduler, runtimed, and Bash Runtime.
Helm Tests
make test-helm
Validates chart linting, template rendering, multi-release rendering, and multi-namespace rendering.
Python Runtime Tests
cd runtimes/python
uv sync --frozen
uv run --frozen python -m unittest server_test -v
E2E Tests
make e2e
make e2e builds images, creates or reuses a kind cluster, loads images,
deploys Helm charts, and runs E2E tests.
Use this when changes affect:
- CRD behavior,
- scheduling,
- runtimed execution,
- Helm install paths,
- artifact storage,
- CLI behavior against a real cluster.
Benchmarks
make benchmark
The benchmark uses the E2E setup path and measures scheduling latency, throughput, Runtime capacity behavior, and control-plane request latency.
See Performance Benchmarks .
Security and Dependency Checks
make govulncheck
Security workflow also runs scheduled scans in GitHub Actions.
Adding Tests
- Add unit tests near the package being changed.
- Add integration tests for controller-runtime, CRD validation, and admission behavior.
- Add E2E tests for behavior that only appears in a real cluster.
- Update docs when tests cover user-visible behavior.