Testing
Make sure all pre-requisites are installed as described in pre-reqs .
Unit testing
The Makefile has a target for running all the unit tests.
make testIntegration testing
There are currently three integration tests. Contributors can run them. There is also a GitHub Actions workflow (in .github/workflows/pr-test-integration.yml) that runs these tests.
These tests require you to already have etcd on your $PATH.
See https://github.com/kubernetes/kubernetes/blob/v1.29.10/hack/install-etcd.sh for an example of how to do that.
To run the tests sequentially, issue a command like the following.
CONTROLLER_TEST_NUM_OBJECTS=24 go test -v ./test/integration/controller-manager &> /tmp/test.logIf CONTROLLER_TEST_NUM_OBJECTS is not set then the number of objects
will be 18. This parameterization by an environment variable is a
point-in-time hack, it is expected to go away we have a test that
runs reliably on a large number of objects.
To run of the individual tests, issue a command like the following example.
go test -v -timeout 60s -run ^TestCRDHandling$ ./test/integration/controller-managerEnd-to-end testing
See test/e2e/ in the GitHub repository. It has a README.