Commit | Line | Data |
---|---|---|
7f254ad8 AE |
1 | [QUnit](http://qunitjs.com) - A JavaScript Unit Testing framework. |
2 | ================================ | |
3 | ||
4 | QUnit is a powerful, easy-to-use, JavaScript test suite. It's used by the jQuery | |
5 | project to test its code and plugins but is capable of testing any generic | |
6 | JavaScript code (and even capable of testing JavaScript code on the server-side). | |
7 | ||
8 | QUnit is especially useful for regression testing: Whenever a bug is reported, | |
9 | write a test that asserts the existence of that particular bug. Then fix it and | |
10 | commit both. Every time you work on the code again, run the tests. If the bug | |
11 | comes up again - a regression - you'll spot it immediately and know how to fix | |
12 | it, because you know what code you just changed. | |
13 | ||
14 | Having good unit test coverage makes safe refactoring easy and cheap. You can | |
15 | run the tests after each small refactoring step and always know what change | |
16 | broke something. | |
17 | ||
18 | QUnit is similar to other unit testing frameworks like JUnit, but makes use of | |
19 | the features JavaScript provides and helps with testing code in the browser, e.g. | |
20 | with its stop/start facilities for testing asynchronous code. | |
21 | ||
22 | If you are interested in helping developing QUnit, you are in the right place. | |
23 | For related discussions, visit the | |
24 | [QUnit and Testing forum](http://forum.jquery.com/qunit-and-testing). | |
25 | ||
26 | Planning for a qunitjs.com site and other testing tools related work now happens | |
27 | on the [jQuery Testing Team planning wiki](http://jquerytesting.pbworks.com/w/page/41556026/FrontPage). | |
28 | ||
29 | Development | |
30 | ----------- | |
31 | ||
32 | To submit patches, fork the repository, create a branch for the change. Then implement | |
33 | the change, run `grunt` to lint and test it, then commit, push and create a pull request. | |
34 | ||
35 | Include some background for the change in the commit message and `Fixes #nnn`, referring | |
36 | to the issue number you're addressing. | |
37 | ||
38 | To run `grunt`, you need `node` and `npm`, then `npm install grunt -g`. That gives you a global | |
39 | grunt binary. For additional grunt tasks, also run `npm install`. | |
40 | ||
41 | Releases | |
42 | -------- | |
43 | ||
44 | Install git-extras and run `git changelog` to update History.md. | |
45 | Update qunit/qunit.js|css and package.json to the release version, commit and | |
46 | tag, update them again to the next version, commit and push commits and tags | |
47 | (`git push --tags origin master`). | |
48 | ||
49 | Put the 'v' in front of the tag, e.g. `v1.8.0`. Clean up the changelog, removing merge commits | |
50 | or whitespace cleanups. | |
51 | ||
52 | To upload to code.jquery.com (replace $version accordingly): | |
53 | ||
54 | scp -q qunit/qunit.js jqadmin@code.origin.jquery.com:/var/www/html/code.jquery.com/qunit/qunit-$version.js | |
55 | scp -q qunit/qunit.css jqadmin@code.origin.jquery.com:/var/www/html/code.jquery.com/qunit/qunit-$version.css | |
56 | ||
57 | Then update /var/www/html/code.jquery.com/index.html and purge it with: | |
58 | ||
59 | curl -s http://code.origin.jquery.com/?reload |