Viewing legacy documentation for Kubebuilder, check out the latest documentation instead.

Running tests

Kubebuilder will create scaffolding tests for controllers and resources. When run, these tests will start a local control plane as part of the integration test. Developers may talk to the local control plane using the provided config.

Resource Tests

The resource tests are created under pkg/apis/<group>/<version>/<kind>_types_test.go. When a resource is created with kubebuilder create api, a test file will be created to store and read back the object.

Update the test to include validation you add to your resource.

For more on Resources see What Is A Resource

Controller Tests

The controller tests are created under pkg/controller/<kind>/controller_test.go. When a resource is created with kubebuilder create api, a test file will be created to start the controller and reconcile objects. The default test will create a new object and verify that the controller Reconcile function is called.

Update the test to verify the business logic of your controller.

For more on Controllers see What Is A Controller

Run the tests

Run the tests using make test.

make test

Optional: Change Control Plane Test Binaries

To override the test binaries used to start the control plane, set the TEST_ASSET_ environment variables. This can be useful for performing testing against multiple Kubernetes cluster versions.

If these environment variables are unset, kubebuiler will default to the binaries packaged with kubebuilder.

export TEST_ASSET_KUBECTL=/usr/local/kubebuilder/bin/kubectl
export TEST_ASSET_KUBE_APISERVER=/usr/local/kubebuilder/bin/kube-apiserver
export TEST_ASSET_ETCD=/usr/local/kubebuilder/bin/etcd