Why not Cypress?

So first of all - we ❤️ Cypress. We are inherently biased to like any company that creates automation tooling and cares about developer happiness. So when we set out to write a tool for developers that enables stability in the Testim enterprise product - building it on top of Cypress was our first go-to strategy.

However, we were completely unable to use Cypress as the basis of our platform and no-longer recommend it to our users for the following reasons.

Cypress is not JavaScript

In Cypress - you compose a tree of actions instead of writing plain JavaScript code. This is because Cypress was written in a time modern JavaScript was not widely available and promises were not commonplace.

Not writing JavaScript but instead writing a tree is an anachronism that we wanted to avoid with Testim coded tests

You cannot for example write for loops or attach a debugger in a plain JavaScript way in Cypress.

Cypress is built on jQuery and CoffeeScript

Cypress builds on the jQuery API which was a very appealing API in the past but it creates a very confusing promise API.

Cypress does not let you run native actions

Cypress is implemented (like the early versions of Selenium) in JavaScript. This is nice but it means that things like hovering on an element will not work on Cypress and you will always have to work around them and your code will contain test code.

No support for multiple tabs

Cypress does not support running test code in multiple tabs. This is a requirement for a lot of our large enterprise customers so we did not expect this to be any different in Testim Code.

What if Cypress fixes those things?

Then we will re-consider. Those issues are fundamental in our opinion and are a show stopper.