JSON Schemas are your True Testing Friend

We use JSON schemas to describe the data flowing through our system, document API routes, test server code and even validate fixtures used during end-to-end testing. This long(ish) blog post describes in detail how we did this.
Read more

$4 million more means more features and jobs

It’s a big day for Cypress. We are going to take a brief break from our scheduled programming to announce that Cypress has raised $4 million, co-led by Las Olas Venture Capital and Bessemer Venture Partners.
Read more

Introducing Drew Lanham

When is the right time to bring in a CEO? This “Founder’s Dilemma” is something I’ve been considering for some time. After leading product development for Cypress and steering the company through two rounds of funding, eventually I realized trying to split my time between CEO and development duties was no longer feasible. Being merely an “adequate” CEO hampered our potential and my passion and vision has always belonged with building the product. I realized we’d reached the point where we needed a dedicated CEO.
Read more

Sliding Down the Testing Pyramid

A good end-to-end test runner, like Cypress, can be very effective at performing integration tests and even at running unit tests. In this blog post I will show how to write view component tests for a Hyperapp application and how to unit test individual functions. The same approach can work for components written using other frameworks like Vue, React, Cycle, Svelte and others.
Read more

Angular + Cypress = Love

This is a guest post from Jeff Whelpley, CTO at Swish, Google Developer Expert, co-creator of Angular Universal (server rendering for Angular 2+), co-organizer of Boston Angular Meetup, co-organizer of Boston AI Meetup, guest/panelist on AngularAir and Adventures in Angular podcasts, and frequent speaker at local Boston meetups.

Read more

Cypress is heading to Assert(js)

The Cypress team is super excited to be heading to San Antonio on February 22 for the Assert(js) conference. The Assert(js) Testing Conference is a one-day, single-track conference focused on helping JavaScript developers better understand and share best practices with JavaScript testing tools. Sounds like a great place for us to hang out with like minded developers.
Read more

When Can The Test Start?

Can the test runner be too quick? Can the tests start before the application is ready to handle the test steps? It definitely can happen. This blog post shows a little trick one can use to detect when a web application really starts, so that the test runner never has to wait longer than necessary.
Read more

End-to-End Snapshot Testing

Snapshot testing has taken the JavaScript unit testing world by storm. It removes much of the manual coding and much of the boilerplate, leaving the test runner to save or compare produced values. This blog post shows how the Cypress Test Runner can bring the same power to your end-to-end tests.
Read more

An Alternative to Protractor for Angular Projects

Fans of Angular CLI get Protractor end-to-end tests generated with each scaffolded project. In this blog post I will show how to add Cypress E2E tests instead with minimum effort (and TypeScript support)!
Read more

Testing apps hosted on Codepen.io

Lots of people love to quickly throw web applications on Codepen.io. Who can refuse a quick and powerful way to start writing code immediately; sharing results is almost instant. In this blog post I will show how to write end-to-end tests for web apps embedded in a Codepen.
Read more

Testing Vue web applications with Vuex data store & REST backend

In this blog post we will test a typical web application that uses a central data store to manage state. The data store communicates with the backend that stores the data long term. You can find patterns in React + Redux applications, Angular + MobX and countless other combinations.
Read more

Extending Cypress With Plugins

One of the greatest (and unique) advantages of Cypress is that all of your test code runs in the browser. This provides us a significant architectural advantage over every other testing tool out there.
Read more

Control an AngularJS Application From E2E Tests

Cypress runs close to your application. Only a thin iframe separates the production code from the testing code. Thus Cypress can take shortcuts and control your application code directly, bypassing always going through the DOM. For example imagine you are developing an AngularJS 1.x TodoMVC application such as http://todomvc.com/examples/angularjs/; how could you take advantage of this?
Read more

Add GUI to your E2E API tests

We like to pretend there are two disjointed end-to-end test types: API and browser automation tests. And that the tools used are very different; the API tests are executed by a CLI test runner, while automation tests all fire up a browser. Yet, a good E2E automation test runner, in my opinion, should be really good at working with a remote server API via HTTP. After all, this is what every useful website does. Every website exchanges data with remote servers through HTTP requests.
Read more

Conditional testing and control flow in Cypress

Conditional testing refers to the common programming pattern where you perform one action, or a different one. It’s also known as control flow. Typically this is expressed as: If X, then Y, else Z.
Read more

Joining Cypress

As a developer, I am always on the lookout for tools and practices that will improve my productivity, help me write higher quality software and increase the enjoyment I get out of my work. When I had the opportunity to use Cypress for the first time, it immediately checked off all 3 boxes for me.
Read more

Cypress is now public beta

The first commit on Cypress happened on June 5th, 2014 - exactly 3 years, 4 months, and 5 days ago.
Read more

Good error messages

If I can paraphrase a cliché:
Read more

10 ways we improved our docs

As part of our strategy towards going open source, we wanted to make several improvements to our documentation.
Read more

Immutable deploys and Cypress

It is simple to run Cypress both locally and on CI. And it is simple to point your tests to a different server. If you are using immutable deploys, Cypress can be the ultimate “health check”. If the tests pass locally, then on CI, and then at a newly deployed environment - the chances are very high that you can point production DNS record at the new deployment and it will work.
Read more

Why I joined the Cypress.io team

You know what is hard? Changing jobs is hard. Testing web applications is hard. Luckily for me, I have an opportunity to tackle both problems at once!
Read more

Atom test utils

At Cypress, we love creating tools that make testing easier and more productive. We also write a lot of tests ourselves to both guide our development and help prevent regressions. While having a lot of tests is a great way to prevent regressions, it can get in the way of getting quick feedback during development. The more tests there are, the longer it takes to run them all, which can slow things down.
Read more

Cypress is going open source!

That’s right! After years of development and focused iteration with our early adopters, the most advanced front-end testing tool in the universe is almost ready for its ultimate adventure: going open source!
Read more