Distributed continuous integration testing for JavaScript.
PHP JavaScript
Switch branches/tags
Nothing to show
#1 Compare This branch is 1 commit ahead, 450 commits behind jquery:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


TestSwarm - Distributed Continuous Integration for JavaScript

TestSwarm provides distributed continuous integration testing for JavaScript.

The main instance monitoring jQuery core and related projects runs at swarm.jquery.org.

Quick start

Clone the repo, git clone git@github.com:jquery/testswarm.git, or download the latest release.


TestSwarm uses the Semantic Versioning guidelines as much as possible.

Releases will be numbered with the follow format:


The -pre suffix is used to indicate unreleased versions currently in development.

For more information on SemVer, please visit http://semver.org/.

Bug tracker

Have a bug? Please report the issue in our issue tracker at GitHub!



To use TestSwarm you need a web server, database server and PHP. Right now TestSwarm only supports Apache and MySQL as servers.


  • Apache 2.0+
  • PHP 5.2.3+
  • MySQL 4.0+


  1. Create a mysql database and a user who can connect and write to it.

  2. Load the MySQL database. mysql DBNAME -u USER -p < testswarm.sql mysql DBNAME -u USER -p < useragents.sql

  3. Copy the ./config/config-sample.ini to ./testswarm.ini and change the options to correspond to your MySQL database information.

  4. Copy the ./config/.htaccess-sample to ./htaccess. If needed change the RewriteBase to match the contextpath configuration.

  5. Load the cronjob (changing the URL to point to your site). crontab << config/cronjob.txt

  6. Currently the server must be run in Apache (it uses a .htaccess file).

    To run it from non-root, set contextpath = "/testswarm/" (or whatever path you use).

    And update the .htaccess file, use RewriteBase /testswarm/

    Test if /testswarm/login loads, if not, put some jibberish into the .htaccess file to see if it's getting loaded. If not, make sure AllowOverride is set to "All" (at least not to "None") in your main Apache config.

Get involed

You're welcome to use the Github issue tracker to start discussions.

There is also a mailing list at Google Groups available:

Most of us are also on IRC in the #jquery-dev channel at irc.freenode.net

Planning for TestSwarm and other projects related to testing of javascript applications based around jQuery happens on the jQuery Testing Team wiki

Copyright and license

See LICENSE for more information.


TestSwarm was originally created by John Resig as a basic tool to support unit testing of the jQuery JavaScript library. It was later moved to become an official Mozilla Labs and has since moved again to become a jQuery project.