CHEFS uses CYPRESS for test automation. Cypress is a UI testing tool, which is used for functional testing of web applications. It uses JavaScript framework and can test anything that runs in browser.Cypress test scripts are found in https://github.com/bcgov
Prerequisites
Node.js needs to be installed on the machine before cypress installation
...
Set up
Make sure you have installed Node.js and go to project path /common-hosted-form-service/tests/functional
and run the following commands to install cypress
Code Block |
---|
npm init
npm install cypress --save-dev |
...
Cypress Tests
Cypress tests are stored inside the folder/common-hosted-form-service/tests/functional/cypress/e2e
For headless cypress runs, go to project root /common-hosted-form-service
/tree/main/tests/functional/cypress/e2e/tests/functional
and run the following command
Code Block |
---|
npm run test |
To open the cypress interface and the tests from there , go to project root /common-hosted-form-service/tests/functional
and run the following command and can see cypress test scripts inside e2e folder
Code Block |
---|
npx cypress open |
...
Environment variables
All the env variables are stored in cypress.config.js file in the project path /common-hosted-form-service/tests/functional
...
Cypress workflow
Cypress workflow file will find here https://github.com/bcgov/cypress-ci.yaml will be in the project path /common-hosted-form-service
/tree/main/.github/workflows
Workflow runs find here in the repository
Chefs uses test IDIR and password as GitHub secrets to run cypress tests. By default workflow triggers and cypress runs on dev environment for each push to main branch . When a dev wants to run the cypress tests after the new code pushes to PR environment, Then dev needs to update the GitHub secrets in order to run it on the PR environment. The secrets are stored in the following manner.
secret Secret variable KEYCLOAKUSERNAME is test IDIR username and KEYCLOAKPASSWORD is test IDIR password. secret variable DEPENV is by default stored as app. For example if a dev wants to run the new code in the PR environment, then needs to update the secret DEPENV to new variable say PR-1114(whatever is the PR number) . After saving that dev needs to re run the workflow(manually) and check the cypress result for any failed tests.
Cypress report for the successful run will be like this
Cypress report with the failed tests will be look like below with screenshots available to download to view where the test fails
...
Cypress workflow triggers automatically after each PR deployment. Cypress report will be look like this
...