Jasmine is one of the most popular unit testing frameworks. It's widely used, with runners for Python and Ruby too. It's described as "a behavior-driven development framework for testing JavaScript code"
QUnit is the testing framework used by jQuery. It's created with the intension of easy DOM testing. While Jasmine can be extended with plugins to make DOM testing easier, QUnit comes with build-in functionalities. QUnit does not depend on jQuery or any other library.
A really powerfull library! It has a huge range of features like browser support, simple async support, including promises, test coverage reporting, highlights slow tests, file watcher support, global variable leak detection and many, many more.
Keep it simple, keep it modular. Tape is great at doing that two things.
"You can probably dramatically simplify both your tests and your application by breaking your app into more modular chunks." - Eric Elliott
tape is a simple TAP-producing test library for node and browsers. The tape API is a small superset of the node core assert module. I haven't got the chance to use tape in a large scale project, but it's definatelly on my 2016 resolutions list. I won't include a Proc/Cons for now. You can check some interesting articles about tape to get a better overview of the framework:
This list is far from complete. There are libraries like Jest, Unit.js, Buster.JS, AVA, as well as spies, mocking and stubs libraries like Sinon.js and JSMockito, that are not currently included in the list. To anyone, generous enough to share with us some insights and impressions of the libraries/frameworks not listed, I will gladly add it to the list.