AOE Technology RadarAOE Technology Radar
This item was not updated in last three versions of the Radar. Should it have appeared in one of the more recent editions, there is a good chance it remains pertinent. However, if the item dates back further, its relevance may have diminished and our current evaluation could vary. Regrettably, our capacity to consistently revisit items from past Radar editions is limited.
Adopt

Cypress has proven itself in AOE projects. With its support for JavaScript and TypeScript, Cypress is a testing tool that strongly relates to front-end developers. It is very easy to adopt, and the test specifications are easy to implement and to maintain. Test execution is very fast, and the results are well documented, understandable and easy to publish, e.g. via GitLab Pages. It currently supports Chrome, Firefox and Electron.

Assess

Cypress is a front-end testing tool (E2E). It comes as a simple node package and is therefore easy to use and maintain for front-end developers and testers. Cypress has a different approach than Selenium. It runs in the browser and in the same loop as the device under test.

Good:

Not so good:

  • No cross browser testing (only Chrome and Electron)
  • Scenarios with multiple browser tabs can not be tested
  • Relatively new test tool, though it is becoming more popular

Example of a test :

describe('My First Test', function() {
  it('Visits the Kitchen Sink', function() {
    cy.visit('https://example.cypress.io')

    cy.contains('type').click()

    cy.url().should('include', '/commands/actions')

    cy.get('.action-email')
      .type('fake@email.com')
      .should('have.value', 'fake@email.com')
  })
})