Git Product home page Git Product logo

testswarm's Introduction

<Wetpaint>
TestSwarm is a way of distributing JavaScript testing. A job with a given label is submitted. This job has urls to visit each with its own name. Clients visit TestSwarm and join in to run jobs, reporting successes and failures across domains to the service using window.postMessage (via the /js/inject.js file). Writing tests is separate, but support is built-in for QUnit and a few other frameworks.

Where:
http://testswarm.wetpaint.me/
For a high level overview of our setup, including writing tests see:
https://github.com/Wetpaint/wetpaint.com/wiki/Testing-UI+JavaScript
Documentation:
https://github.com/jquery/testswarm/wiki
Origin source:
https://github.com/Wetpaint/testswarm
Upstream source:
https://github.com/jquery/testswarm

To access testswarm:
ssh [email protected] su - testswarm
or ssh [email protected]

To remove the old jobs:
mysql testswarm -u testswarm -p < config/reset.sql 

To remove all the old tests and update the useragents lists:
mysql testswarm -u testswarm -p < config/cleanup.sql
mysql testswarm -u testswarm -p < config/useragents.sql 

TO add jobs:
run the perl script in scripts/wetpaint.com.pl
or via Jenkins on http://hudson.wetpaint.me:8080/job/wetpaint.com-TestSwarm/
or manually by visiting http://testswarm.wetpaint.me and then doing this in the console:
var _domain = 'http://stage.wetpaint.me';
jQuery.ajax({
	type: 'POST',
	data: {
	job_name: 'good job',
	max: 10,
	user: "jenkins",
	auth: "---the-token-from-the-mysql-user-table-for-the-above-user-",
	browsers: 'all',
	output: "dump",
	state: "addjob",
	'suites[]': ["Home","Article"],
	'urls[]': [_domain.concat("/"),_domain.concat("/jersey-shore/articles/sammi--deena-defend-the-situation-hes-not-gay-hes-just-italian--exclusive-")]
	},
	url: 'http://testswarm.wetpaint.me',
	traditional: true,
	success: function(data){
		console.log(data);
	}
});

resources for setup:
https://github.com/jquery/testswarm/wiki
http://blog.jcoglan.com/2011/07/20/refactoring-towards-testable-javascript-part-3/
http://wiki.collectionspace.org/display/collectionspace/Step+1+-+Notes+for+Installing+TestSwarm
http://wiki.collectionspace.org/display/collectionspace/Step+2+-+TestSwarm+Notes+Adding+User%2C+Adding+Basic+Jobs
http://sweetnr.com/post/integrating-test-swarm-with-hudson

jenkins-testswarm plugin:
https://github.com/appendto/jenkins-testswarm

The remaining material is from the original README.
</Wetpaint>

TestSwarm v0.2.0pre - Distributed continuous integration for JavaScript.

http://testswarm.com/

DISCUSSION

The Google Group for general usage and development discussion:
http://groups.google.com/group/testswarm

INSTALLATION

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 ./config.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 its getting loaded. If not, make sure AllowOverride is set to All (at least not to None) in your main Apache config.

LICENSE

See LICENSE for more information.

Planning for TestSwarm and other testing tools related work now happens on the jQuery Testing Team planning wiki: http://jquerytesting.pbworks.com/w/page/41556026/FrontPage

testswarm's People

Contributors

abackstrom avatar bachp avatar bvibber avatar clarkbox avatar drogus avatar eblanchette avatar hashar avatar jcoglan avatar jeresig avatar jzaefferer avatar krinkle avatar leto avatar morganrallen avatar pope avatar pvande avatar scottgonzalez avatar staabm avatar subtlegradient avatar zhaoz avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.