摘自:List of unit testing frameworks
Name | xUnit | TAP | Client-side | Server-side | Source | Remarks |
---|---|---|---|---|---|---|
Suitest |
|
|
Yes | Yes | [106] | Suitest is a powerful and easy-to-use JavaScript BDD test suite |
DOH |
|
|
Yes | Yes | [107] | Dojo Objective Harness that can be run in-browser or independently via Rhino |
LBRTW UT |
|
No | Yes | No | [118] [119] | Developed as a learning project |
JSUnit | Yes | No | Yes | No | [120] | JSUnit is no longer actively maintained |
Enhance JS | Yes | No | Yes | No | [108] | Port of Enhance PHP |
QUnit |
|
|
Yes | Yes | [121] | jQuery test harness |
RhUnit |
|
|
Yes | Yes | [122] | QUnit compatible Rhino/JUnit framework |
Crosscheck |
|
|
No | Yes | [109] | Browserless Java-based framework |
J3Unit |
|
|
Yes | No | [123] |
|
Mocha | No | Yes | Yes | Yes | [124] |
|
intern | No | Yes | Yes | Yes | [125] |
|
JSNUnit |
|
|
Yes | No | [110] |
|
YUI Test | Yes | Yes | Yes | Yes | [111] |
|
JSSpec |
|
|
Yes | No | [112] | Behaviour-driven development framework |
UnitTesting |
|
|
Yes | No | [113] | script.aculo.us javascript test harness |
JSpec |
|
|
Yes | Yes | [126] | Highly readable BDD, 50+ matchers, DOM / framework independent, async, rhino, node.js support and more (no longer maintained) |
Jasmine |
|
|
Yes | Yes | [127] | BDD, framework independent, easy integration with Ruby projects and continuous builds. Allows for both DOM-less testing and asynchronous testing. |
screw-unit |
|
|
Yes | No | [114] | Requires jQuery |
Test.Simple | No[115] | Yes | Yes | No | [116] | Write TAP-emitting unit tests in JavaScript and run them in your browser. |
Test.More | No[1] | Yes | Yes | No | [117] | Write TAP-emitting unit tests in JavaScript and run them in your web browser. |
TestCase |
|
|
Yes | No | [118] |
|
TestIt |
|
|
Yes | Yes | [119] | Light-weight, non-polluting, and easy to set up and use |
jsUnitTest |
|
|
Yes | Yes[120] |
|
Based on TestCase but without the Prototype dependency |
JSTest |
|
|
Yes | No | [121] | Light-weight, non-polluting browser-based framework |
JSTest.NET |
|
|
No | Yes | [128] | Browserless JavaScript unit test runner for use with MsTest, XUnit, NUnit, etc. |
jsUnity | Yes | No | Yes | Yes | [129] | Context-agnostic (JavaScript, JScript (ASP/WSH), Rhino, etc.) |
RhinoUnit |
|
|
No | Yes | [122] | Rhino-based framework that allows tests to be run in Ant |
JasUnit | Yes | No | Yes | No | [123] | Light-weight framework. Part of a project that provides Mocks and IoC.) |
FireUnit |
|
|
Yes | No | [130] | Testing framework that provides logging and viewing within a new tab of Firebug. |
Js-test-driver | Yes |
|
Yes | No | [124] | The goal of JsTestDriver is to build a JavaScript test runner which easily integrates with continuous builds systems and allows running tests on multiple browsers quickly to ease TDD style development. |
Js-test-runner | No |
|
Yes | Yes | [131] | A JUnit test runner that runs JavaScript tests. The goal of the JS Test Runner is to be able to test JavaScript code using an approach that test driven programmers will feel comfortable with; particularly in the context of Continuous Integration. |
Sinon.js | Compatible |
|
Yes | Yes | [132] | Standalone test spies, stubs and mocks for JavaScript. No dependencies, works with any unit testing framework. |
SOAtest | No |
|
Yes | No | [95] | Commercial. Testing platform whose record/playback runs in most modern web browsers where client-side Javascript can be tested both through static analysis and functional verification. |
Vows | No |
|
|
Yes | [133] |
|
Nodeunit |
|
|
Yes | Yes | [125] | Asynchronous Javascript testing framework |
Tyrtle |
|
|
Yes | Yes | [134] | Testing framework which allows expressive assertions and interactive test output |
wru | Compatible |
|
Yes | Yes | [126] | General purpose environment agnostic sync/async JavaScript test framework. Compatible with any browser, desktop or mobile, node.js, Rhino, and phantom.js. Tiny, essential, fast. |
Buster.JS | Compatible | Yes | Yes | Yes | [135] | BDD/xUnit, assertions, expectations, browser/server, extendable with tools like linting and other QA measures, highly configurable, well documented and actively developed |