By default, Cypress has everything you need to start testing: the test runner, the browser automation, the assertions, and lots of powerful commands. With time you might need additional features. Because Cypress is just JavaScript, you can extend it in many ways by writing JS / TS code. There are lots of official and community plugins, but here are my favorite ones:
cypress-each generates individual tests from data by extending the test runner with
it.each
anddescribe.each
methods.cypress-watch-and-reload reloads Cypress when one of the watched files changes, useful when you want to re-run tests when the application code changes.
cypress-grep filters tests using a part of its title or via test tags.
cypress-recurse adds the ability to re-run Cypress commands until a predicate function returns true.
cypress-data-session adds a Cypress command for flexible test data setup and caching.
For more information, check out my latest presentation “Supercharge Your Cypress Tests With Plugins”.