![]() There is a test in wait.sh integration suite which is checking the given timeout value(passed by user) is equal to actual happened timeout value. However, this test rarely gets `no matching resources found` error and causes flakyiness. The reason is we are running wait command, immediately after applying deployment. In reality, timeout test does not care about deployment, since it is testing the timeout by passing invalid configurations. But we need this deployment to not get `no matching resources found` error. That's why, this PR adds deployment assertion before executing wait command. |
||
---|---|---|
.. | ||
apply.sh | ||
apps.sh | ||
authentication.sh | ||
authorization.sh | ||
batch.sh | ||
certificate.sh | ||
convert.sh | ||
core.sh | ||
crd.sh | ||
create.sh | ||
debug.sh | ||
delete.sh | ||
diff.sh | ||
discovery.sh | ||
events.sh | ||
exec.sh | ||
generic-resources.sh | ||
get.sh | ||
help.sh | ||
kubeconfig.sh | ||
legacy-script.sh | ||
node-management.sh | ||
OWNERS | ||
plugins.sh | ||
proxy.sh | ||
rbac.sh | ||
README.md | ||
request-timeout.sh | ||
results.sh | ||
run.sh | ||
save-config.sh | ||
storage.sh | ||
template-output.sh | ||
version.sh | ||
wait.sh |
Kubernetes Command-Line Integration Test Suite
This document describes how you can use the Kubernetes command-line integration test-suite.
Running Tests
All Tests
To run this entire suite, execute make test-cmd
from the top level. This will import each file containing tests functions
Specific Tests
To run a subset of tests (e.g. run_deployment_tests
and run_impersonation_tests
), execute make test-cmd WHAT="deployment impersonation"
. Running specific
tests will not try and validate any required resources are available on the server.
Adding Tests
Test functions need to have the format run_*_tests
so they can be executed individually. Once a test has been added, insert a section in legacy-script.sh
like
######################
# Replica Sets #
######################
if kube::test::if_supports_resource "${replicasets}" ; then
record_command run_rs_tests
fi
Be sure to validate any supported resources required for the test by using the kube::test::if_supports_resource
function.
New File
If the test resides in a new file, source the file in the top of the legacy-script.sh
file by adding a new line in
source "${KUBE_ROOT}/test/cmd/apply.sh"
source "${KUBE_ROOT}/test/cmd/apps.sh"
source "${KUBE_ROOT}/test/cmd/authorization.sh"
source "${KUBE_ROOT}/test/cmd/batch.sh"
...
Please keep the order of the source list alphabetical.