This directory contains e2e tests and testing docs:
- Unit tests are in the code base alongside the code they test
- e2e tests are in
test/e2e/
To run all unit tests locally:
$ hack/build.sh -t
By default go test
will not run the e2e tests,
which need -tags=e2e
to be enabled.
To run the e2e tests locally, you need to have:
- Running knative environment.
kn
binary in the $PATH.- Please Make sure that you are able to connect to the cluster by following the guide here
Before running the e2e tests please make sure you dont have any namespaces with
the name starting with kne2etests
Run all e2e tests:
$ test/local-e2e-tests.sh
To run only serving specific e2e tests locally, use
E2E_TAGS="serving" test/local-e2e-tests.sh
To run only eventing specific e2e tests locally, use
E2E_TAGS="eventing" test/local-e2e-tests.sh
To run one e2e test case, e.g. TestBasicWorkflow
test/local-e2e-tests.sh -run ^TestBasicWorkflow$
Running tests in short mode excludes some large-scale E2E tests and saves
time/resources required for running the test suite. To run the tests in short
mode, use
the -short
flag with go test
test/local-e2e-tests.sh -short
Two e2e tests prow jobs are run in CI:
- pull-knative-client-integration-tests: Runs client e2e tests with the nightly build of serving and eventing.
- pull-knative-client-integration-tests-latest-release: Runs client e2e tests with the latest release of serving and eventing. The latest release version can be configured here.
The upload-test-images.sh
script can be used to
build and push the test images used by the e2e tests. The script
expects your environment to be setup as described in
DEVELOPMENT.md.
To run the script for all end to end test images:
./test/upload-test-images.sh
A docker tag may be passed as an optional parameter. This can be useful on
Minikube in tandem with the --tag
flag:
PLATFORM
environment variable is optional. If it is specified, test images
will be built for specific hardware architecture, according to its value
(for instance,linux/arm64
).
eval $(minikube docker-env)
./test/upload-test-images.sh any-old-tag
New test images should be placed in ./test/test_images
.