How it works

Features
So what can I do with it?

Create stable tests
(and no manual timeouts)

TestCafe automatically waits for page loads and XHRs before the test starts and after each action. It also features smart test actions and assertions that wait for page elements to appear. You can change the maximum wait time. If elements load faster, tests skip the timeout and continue.

Write in latest JS
or TypeScript

TestCafe supports the latest JavaScript features, including ES2017 (for example, async/await). You can also use TypeScript if you prefer a strongly typed language.

Detect JS errors
in your code

TestCafe reports JS errors that it finds on the webpage. Tests automatically fail because of that. However, you can disable this.

Launch
concurrent tests

TestCafe can open multiple instances of the same browser to run parallel tests which decreases test execution time.

Build readable tests with
PageObject

The TestCafe's Test API includes a high-level selector library, assertions, etc. You can combine them to implement readable tests with the PageObject pattern.

const el = Selector('.column').find('label')
.withText('MacOS').child('input');

With this pattern, the tested page is represented by a JavaScript object. Elements in tests are accessed through the object's interface. Even if page markup changes, the page object's interface remains the same. And you won't have to rewrite the tests.

Include tests in continuous
integration system

You can run TestCafe from a console, and its reports can be viewed in a CI system's interface (TeamCity, Jenkins, Travis & etc.)

Do you like TestCafe?

Tweet why to help others decide