proof why cypress

This commit is contained in:
Loren Norman
2017-06-09 11:36:40 -04:00
parent 81e4cbf1b4
commit f092cb31d8
@@ -1,4 +1,3 @@
---
title: Why Cypress?
comments: true
---
@@ -19,16 +18,16 @@ Welcome to Cypress: the next-generation testing tool for front-end professionals
Typically, our users are developers or QA engineers building web applications using modern JavaScript frameworks. Cypress enables us to write **end to end tests**, **integration tests**, and **unit tests**, all of which run in the browser.
Cypress is at once an open source local testing tool *and* a value-added service for continuous integration. At first, we use Cypress to write tests **every day** as we build our application locally (we can even use TDD if we prefer). Later, once we've integrated Cypress with our CI Provider, the [Cypress Dashboard](https://on.cypress.io/dashboard-features) records our test runs and clearly presents the results (so we never have to ask "Why did this fail?")
Cypress is at once an open source local testing tool *and* a value-added service for continuous integration. At first, we use Cypress to write tests **every day** as we build our application locally (we can even use TDD if we prefer). Later, once we've integrated Cypress with our CI Provider, the [Cypress Dashboard](https://on.cypress.io/dashboard-features) records our test runs and clearly presents the results so we never have to ask, "Why did this fail?"
Cypress is most often compared to [**Selenium**](http://www.seleniumhq.org/); however Cypress is both fundamentally and architecturally different. Cypress is not bound by the same restrictions as Selenium. Cypress enables us to write faster, more reliable tests that achieve **much more** test coverage. Cypress fundamentally shifts the way we test and build web applications.
Cypress is most often compared to [**Selenium**](http://www.seleniumhq.org/); however, Cypress is both fundamentally and architecturally different. Cypress is not bound by the same restrictions as Selenium. Cypress enables us to write faster, more reliable tests that achieve **much more** test coverage. Cypress fundamentally shifts the way we test and build web applications.
## Features
- **Familiar Tools:** built on the shoulders of such giants as [**Mocha**](https://mochajs.org/), [**Chai**](http://chaijs.com/), [**Sinon**](http://sinonjs.org/), and [**Electron**](https://electron.atom.io/)
- **Extensive APIs:** offers over 80+ commands to intuitively drive the browser
- **Extensive APIs:** offers 80+ commands to intuitively drive the browser like a user
- **Network Stubbing:** easily mock edge cases; or, isolate from the back-end completely
- **Developer Focused:** plugs directly into our existing development workflow
- **Screenshots / Videos:** great, visual feedback for failures and headless runs
- **Screenshots / Videos:** great, visual feedback for failures, great for headless runs
- **Obvious Errors:** see exactly *what* went wrong and, more importantly, *why*
- **Dev Tools / Debugger:** we can use all of our favorite developer tools while we test
- **Time Travel Snapshots:** time travel to any command; step back through every test
@@ -38,8 +37,8 @@ Cypress is most often compared to [**Selenium**](http://www.seleniumhq.org/); ho
## Trade Offs
- **One Superdomain Per Test:** Cypress cannot navigate multiple superdomains during a test
- **One Browser Window Per Test:** Cypress cannot control multiple browser simultaneously
- **One Superdomain Per Test:** Cypress cannot navigate between multiple superdomains per test
- **One Browser Window Per Test:** Cypress cannot control multiple browsers simultaneously
- **Not a Web Crawler:** Cypress is not a general automation tool
- **Not Ideal for Live Apps:** Cypress is best when integrated during development, it isn't for testing a live site
- **Developer-focused:** Users of Cypress must understand (and probably be able to modify) the app under test