Continuous integration maintains the code quality

Unit tests and regression tests

Thousands of Esprima's unit tests and regression tests are executed in a Node.js environment on Linux using Travis CI and on Windows using AppVeyor. It is integrated with the pull request workflow of GitHub so that a change that causes one or more failing tests will be flagged appropriately.

Travis CI build information of Esprima is available at
AppVeyor build status of Esprima is available at

Code coverage tracking

To prevent any potential coverage regression, the information on the code coverage after running the entire unit tests is posted to The coverage analysis itself is running on Circle CI. Using integration with Github, the change in code coverage (whether it stays the same, regresses, or improves) for every pull request will be automatically posted as a comment. dashboard for Esprima is available at

Downstream project tests

There are many widely used open-source projects out there, from Istanbul to Recast, which depend on Esprima. An unknown issue in Esprima during its development, that is not caught by its own test suite, may cause those downstream projects to regress. To prevent this from happening, the development version of Esprima is used to run the test suite of a selected set of downstream projects. This is running on Circle CI and the entire process typically takes around 13 minutes to complete.

Circle CI build status of Esprima is available at

Cross-browser tests

To ensure that Esprima works well with the major popular web browsers out there, its test suite is also executed on a number of different browsers via Sauce Labs. This test is orchestrated using another hosted CI,

The build history at is available at

The following browser matrix summarizes the test coverage. The full dashboard is available at

Sauce Test Status

Every single commit, including the one in every pull request, is subjected to a set of tests to ensure the quality of the corresponding changes.