Testing Redux Store

Cypress tests usually operate via public browser APIs like DOM, network, or storage. But the tests can just as easily reach into the application and check if the internal state is updated correctly. In this blog post I will show you how to run assertions against a React application that uses a Redux store.
Read more

ReactiveConf 2018

October 2018 was a great month for Cypress - we went out of Beta with our SaaS services, did a ton of work on the test runner and released v3.1.1, and I did ReactiveConf Roadshow and Conference tour. This blog post summarizes what I have done during the conference. If you could not attend the ReactiveConf 2018, you can still catch up with Cypress by reading.
Read more

Cypress Case Study: Quizlet

With more than 30 million active users every month, Quizlet is now the world’s largest student and teacher online learning community. It’s used by one in two high school students and one in three college students, so keeping their application up and running smoothly is a top priority. In this case study, we’ll dig into why and how Quizlet now trusts Cypress as their primary end-to-end testing framework.
Read more

Cypress Halloween Theme

A good tool can become a great tool when users make it their own through customization. In this blog post I will explain how to customize the Cypress test runner’s appearance through user space color themes. Since it is the season, we have prepared a dark and spooky Halloween color theme that might scare all your bugs away!
Read more

A New Leaf at Cypress: Lila Conlee Joins the Team

Writing software is hard! Whether you’re building an application from scratch or making modifications to the oldest file in a codebase, the process wears on you. Some of the difficulties are fun; you get to fail repeatedly, fix most of your mistakes, and create something amazing all while becoming more experienced and knowledgeable.
Read more

Dashboard Service Downtime Post-mortem on September 24th, 2018

On Monday, September 24th, the Cypress Dashboard service experienced an approximate downtime of 4 hours from 18:20 UTC to 22:40 UTC. This post is to document and communicate to our users the events that occurred, our investigation, solutions, and the actions we’re taking immediately to mitigate and improve our response to service downtime scenarios.
Read more

We're officially out of beta!

It’s been over four years since our first commit. Since then, we’ve seen Cypress achieve widespread and rapidly growing adoption. It’s now been downloaded more than 2.5 million times, with thousands of organizations recording millions of tests per month. And today, we’re thrilled to announce that Cypress has officially left beta. 🎉
Read more

Run Your End-to-end Tests 10 Times Faster with Automatic Test Parallelization

I have no patience waiting for a lot of Cypress end-to-end tests to finish running on CI. Just sitting and waiting … staring at the CI badge. Any run taking longer than a minute feels like an eternity. Our Cypress development team felt this pain and decided to do something about it. Today we have a solution that slashes those waiting periods - it is automatic test file load balancing across multiple CI machines using a single --parallel flag.
Read more

Setting up Bitbucket Pipelines with proper caching of NPM and Cypress

This is a guest post from Ondřej Janošík, co-owner of Notum Technologies, full-stack developer and clean code enthusiast based in the Czech Republic.

Read more

Record Test Artifacts from any Docker CI

We worked hard to make sure the Cypress Test Runner could be compatible with every continuous integration system. Jenkins, Travis, Circle, Zeit Now, Google Cloud Build, or your own homegrown CI system - they should all work with zero or minimum effort. We also worked hard to make our Dashboard Service particularly useful in collecting and showing all of your test artifacts in a single place.
Read more

Takeaways from Write the Docs + Open Help Cincinnati

This weekend I attended Write the Docs + Open Help Cincinnati. Write the Docs + Open Help is an event that brings together documentation contributors to share and learn from one another. The weekend included a day of talks and day of unconference sessions and lightning talks. It also included three days of documentation sprints led by Open Help, which I was unable to attend.
Read more

Fast Tests, Tiny Docker Image

If the Cypress Test Runner were a person, its best friend would be a person named Docker. Really, Cypress and Docker work so well together! For example, all our CI builds are using cypress-docker-images to include all necessary dependencies in order to successfully install and run Cypress tests. Just run npm ci and cypress run and you are good to go.
Read more

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