Page tree
Skip to end of metadata
Go to start of metadata
  1. Speed

  2. Reliability

  3. Relevance

  4. Mocking facility (Mirage - mocking HTTP requests)

  5. Cost to migrate/rebuild existing tests

  6. Multi browser support

  7. Parallel  Execution (not for e-2-e tests)

  8. Coverage collection 

    1. Istanbul for Unit and Integration tests

    2. reportportal.io or testrail.io for e-2-e test

  9. Open Source Community Support



CypressJestEnzyme

Speed6



Reliability10



Mocking?



MigrationI know from browsing the documentation that there are facilities for providing mocks, and in particular data fixtures seem well supported, but I have not used any of this.



Multi-browser8



|| executionI know that there is support for this, but I have not attempted to use it because so many of my tests involve making changes to the data (adding and editing courses, instructors and reserves) that they are not even in principle parallelizable.



Coverage10



Community10



Extras




  • No labels

1 Comment

  1. Based on my still limited experience with Cypress, here are some attempts at scoring.

    1. Speed — 6/10. Doesn't seem noticably faster or slower than other testing technologies for the most part, but needs fewer explicit waits.

    2. Reliability — 10/10. I've not had any problems.

    3. Relevance — ?/10. I'm not sure what this means.

    4. Mocking facility (Mirage - mocking HTTP requests) — ?/10. I know from browsing the documentation that there are facilities for providing mocks, and in particular data fixtures seem well supported, but I have not used any of this.

    5. Cost to migrate/rebuild existing tests — 7/10. Hard to say as I have only written tests de novo, but my sense that it in most cases it will be quicker and easier to start more or less from scratch, retaining only the selectors, as Cypress tests are quick to write.

    6. Multi browser support — 8/10. Out of the box it will run tests against Electron, Google Chrome and Firefox. The Firefox support is said to be in beta, but it's been solid for me. It doesn't aim for the very wide support that Karma provides.

    7. Parallel Execution (not for e-2-e tests) — ?/10. I know that there is support for this, but I have not attempted to use it because so many of my tests involve making changes to the data (adding and editing courses, instructors and reserves) that they are not even in principle parallelizable.

     8. Coverage collection — 10/10. The collection of coverage data can be done by starting the Stripes service with the --coverage command-line option (at least, as of release 1.18.0), and reporting on that data can be done in the standard way using Istanbul. This is integrated into Jenkins. Note however that the one significant wrinkle I've run into comes with Yarn installing the coverage packages: this is documented at https://github.com/folio-org/ui-courses/blob/master/doc/testing-with-cypress.md#-warning-larks-vomit-

    9. Open Source Community Support — 10/10. The online documentation is without exception the best I have encountered for any project, and includes a wealth of tutorial and best-practices material as well as comprehensive reference guides. Also, a ton of video talks.

    Note that this summary, and especially the numbers attached, give only the most superficial and misleading overview of Cypress's value. For example, there's nowhere in these categories to note that when running the CI, Cypress leaves behind videos and screenshots of any errors that occur.