The basic setup of sorry-cypress is already quite useful - we can run cypress tests in parallel without any limitations.
However, we want to store and see the test results, explore errors, screenshots and videos.
We are going to run the full sorry-cypress kit:
director service will use MongoDB to store the test runs and the results
API service (a GraphQL interface to MongoDB) to let us issue queries and retrieve tests results
Dashboard service - a web dashboard for browsing the results
minio will let us store files - videos and screenshots generated by cypress agent
We are going to run all the services locally using
# get docker-compose filecurl --output docker-compose.minio.yml https://raw.githubusercontent.com/sorry-cypress/sorry-cypress/master/docker-compose.minio.yml# start the servicesdocker-compose -f ./docker-compose.minio.yml up
After successfully running docker-compose, we have:
director service on http://localhost:1234
API service on http://localhost:4000
Dashboad running on http://localhost:8080
Open the dashboard at http://localhost:8080
We are using
minio service to store file generated by cypress agents - video recordings and failed tests screenshots. Each agent uploads the files directly to
/etc/hosts file to allow cypress agents to discover the local instance of
director is running in a Docker container, but it is still accessible at
http://localhost:1234. We have already reconfigured
cypress to use this URL. Let's just rerun the tests.
Open several terminal windows within a directory with tests and run
cypress in each.
# run in each terminalcypress run --parallel --record --key somekey --ci-build-id hello-cypress
As soon as agents start their execution, refresh the dashboard. You'd see a new project and a new run created.
The dashboard is quite simple - go ahead and explore the tests you have just created.
You have set up sorry-cypress on your local machine. Now you can run unlimited cypress tests and use the dashboard to browse the results.
In the next article, we'll learn how to setup sorry-cypress in the cloud using different cloud providers.