AOE Technology RadarAOE Technology Radar
Adopt

Cypress continues to prove its value in AOE Group projects and has evolved significantly since early 2022. Cypress remains one of our preferred testing tools for front-end developers, thanks to its robust support for JavaScript and TypeScript. The ease of adoption and implementation, combined with the maintainability of test specifications, has only improved with recent updates.

Key Updates and Enhancements of the Past Years

  • Broader Browser Support: Cypress now supports a wider range of browsers, including Edge and WebKit, in addition to Chrome, Firefox, and Electron. This expansion ensures comprehensive testing across more environments.
  • Improved Performance: The latest versions of Cypress have focused on enhancing test execution speed. Optimizations in the core engine and better resource management have resulted in faster and more reliable test runs, even for large and complex test suites.
  • Enhanced Debugging Capabilities: Debugging has become even more user-friendly with improved tooling. Features like time travel, where developers can step through each test command, and better error messages help in quickly identifying and resolving issues.
  • CI/CD Integration: Cypress has strengthened its integration with popular CI/CD tools. Improved plugins and configurations for platforms like GitHub Actions, GitLab CI, CircleCI, and Jenkins make it easier to incorporate Cypress tests into continuous integration and continuous deployment pipelines.
Adopt

Cypress has proven itself in AOE projects. With its support for JavaScript and TypeScript, Cypress is a testing tool that strongly resonates with front-end developers. It is very easy to adopt, and the test specifications are easy to implement and maintain. Test execution is swift, and the results are well-documented, understandable, and easy to publish, for example, via GitLab Pages.

Currently, it supports Chrome, Firefox, and Electron.

Assess

Cypress is a front-end testing tool (E2E). It comes as a simple node package, making it 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 cannot be tested
  • Relatively new test tool, although 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')
  })
})