What tests are doing:
- Create the infra stack ( GCP runner, cert-manager, rancher )
- Install the Turtles operator with locally built latest chart
- Deploy the Turtles UI extension
- Test the Turtles menu, namespaces import features
- Perform CAPI setup prerequisites
- Create & Import CAPI cluster using fleet by cluster, namespace annotation
- Create & Import CAPI cluster using ClusterClass UI
- Install App on imported CAPI cluster
- Scale the imported CAPI cluster
- Remove & Delete the imported CAPI cluster
- Install Rancher.
- Install Rancher Turtles operator.
- Install CAPI UI Extension.
cd tests/cypress/latest
- Install Cypress and its dependencies:
npm install
- Export the following ENV VAR:
RANCHER_URL
(format:https://<FQDN>/dashboard
),RANCHER_PASSWORD
,RANCHER_USER
,CYPRESS_TAGS=@install [@short @full|@vsphere]
, and provider specific env var:- CAPA -
AWS_ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
- CAPG -
GCP_CREDENTIALS
andGCP_PROJECT
- CAPZ -
AZURE_TENANT_ID
,AZURE_CLIENT_ID
,AZURE_CLIENT_SECRET
,AZURE_SUBSCRIPTION_ID
, andAZURE_LOCATION
. - CAPV -
VSPHERE_ENDPOINTS_LIST
(workflow only, otherwise hardcoded endpoint_ip is part of the following var),VSPHERE_SECRETS_JSON_BASE64
, see here for reference.
- CAPA -
- Start Cypress:
./node_modules/cypress/bin/cypress open -C cypress.config.ts
ornpx cypress open --env grepTags="@install @short"
The Cypress GUI should now be visible.
We categorize our tests using tags such as short
, full
, vsphere
, and install
.
Tests tagged with short
are local (docker-based) tests, while those tagged with vsphere
are specific to vSphere.
Tests tagged with full
are cloud provider-based tests. The install
tag is used for initial setup tests ('install' tag is also to be included in setup tests title).
We have implemented tags for more precise selection of tests using a Cypress plugin called cypress-grep
Note: the title can be either at describe
, context
or it
level.
By default, daily runs will run test with the tags@install
, @short
To use locally use the tag --env grepTags=tag
along with the npx command
For example:
npx cypress run -C cypress.config.ts --env grepTags="@short" cypress/e2e/unit_tests/*.spec.ts