func/test/README.md

69 lines
1.8 KiB
Markdown

# Functions E2E Test
## Lifecycle tests
Lifecycle tests exercises the most important phases of a function lifecycle starting from
creation, going thru to build, deployment, execution and then deletion (CRUD operations).
It runs func commands such as `create`, `deploy`, `list` and `delete` for a language
runtime using both default `http` and `cloudevents` templates.
## Extended tests
Extended tests performs additional tests on `func` such as templates, config envs, volumes, labels and
other scenarios.
## On Cluster Builds tests
On cluster builds e2e tests exercises functions built directly on cluster.
The tests are organized per scenarios under `./oncluster` folder.
### Pre-requisites
Prior to run On Cluster builds e2e tests ensure you are connected to
a Kubernetes Cluster with the following deployed:
- Knative Serving
- Tekton
- Tekton Tasks listed [here](../docs/reference/on_cluster_build.md)
- Embedded Git Server (`func-git`) used by tests
For your convenience you can run the following script to setup Tekton and required Tasks:
```
$ ./hack/install-tekton.sh
```
To install the Git Server required by tests, run:
```
$ ./hack/install-git-server.sh
```
#### Running all the Tests on KinD
The below instructions will run all the tests on KinD using an **ephemeral** container registry.
```
# Pre-Reqs
./hack/allocate.sh
./hack/install-tekton.sh
./hack/install-git-server.sh
make build
# Run tests
./test/e2e_oncluster_tests.sh
```
#### Running "runtime" only scenario
You can run only e2e tests to exercise a given language/runtime, for example *python*
```
env E2E_RUNTIMES=python TEST_TAGS=runtime ./test/e2e_oncluster_tests.sh
```
#### Running tests except "runtime" ones
You can run most of on cluster builds e2e scenarios, except the language/runtime specific
ones, by running:
```
env E2E_RUNTIMES="" ./test/e2e_oncluster_tests.sh
```