...
Cypress has great UI. What it does mean? You can interact with when you are execute your test and it gives a lot of meaningful feedback.
First, it has a tool to debugging called Time Travel and Debugging. Write your test, click Save and when your click test runner, right the way we can see our application is running the test as you specified. When you add “pause” command to your script (cy.pause()) and run your test, you can see on the screen what is executed in those three panels step by step. You can watch three panels simultaneously when your test is executed: on the left panel with your script, in the middle panel with command log and on the right with your application.
Second great thing that Cypress gives us ability to have Real Time Reloads. That is really cool feature that Cypress provides us with.
Third great feature of Cypress, probably the biggest one is an Automatic Waiting. Cypress is a tool that knows about your network request when you are sending and you are receiving.
Cypress has also an Ability to Take Screens and Videos of what happens at each step. By default Cypress generates screen shots when the test fails. Also it generates videos by default and compresses those videos. So, you don’t want to waste the space. To get high quality video you need to disable compression. You run this on CIN environment, so you can see what happens. Why the test failed and on what step. So you can see really quickly what is going on.
...
Clock - there are situations when it is useful to control your application's date and time in order to override its behavior or avoid slow tests. With cy.clock() you can control. If in your test you have to need wait for some time, you can actually trick the clock to not waste your time:
Date
setTimeout
setIntervasetInterval
CYPRESS ALSO COMES WITH A LOT OF TOOLS BUILD IN:
...
Fist trade-off limitation is: It’s it’s not really “General Automation Tool”. Cypress relies on the browser, it’s not good for the applications which are not web based.
Second limitation is: It it doesn’t support multiple tabs by design. It things that this scenario can be resolved in different ways. It has an article about it and solution how you can address that.
For the same reason: it can be fired up the two browser at the same time.
...