What is a list of criteria for choosing a testing framework?
As you investigate different test frameworks you will notice that syntax is a differentiating factor across all of them. This is really going to depend on what makes you feel comfortable.
For example, qUnit is more of a declarative test framework. Its API consists of functions called test, equals, strictEqual, deepEqual, etc.
Another test framework, mocha, is more like rspec in that it reads in a more sentence like structure. Its API consists of functions called describe, it, assert.equal, etc.
My personal preference is a qunit like structure.
2) Features - Stubs, Spies, Fake server, Fake clock, etc
Spies - This will help you detect whether your code called a function when it should have
Stubs - Very similar to a spy except it contains predefined behavior (Example: When the stub is called, return foo)
Fake Server - If your code issues AJAX calls and you want to fake the response of the AJAX call, a Fake Server will help you more easily test.
Fake Clock - If your code reacts differently based on the date or time, then a fake clock will help you control exactly what time it is while your test runs.
3) Community Support
Is your test framework supported by the community? For example, grunt (a build environment tool) supports running qunit in a headless PhantomJS server: https://github.com/gruntjs/grunt-contrib-qunit . This makes it easy to write tests and have them be automatically run everytime I save the test file.
Is it practical to try them all out?
No it is not practical. Instead investigate each framework's website and pick one that you feel comfortable with and one that will also support you while your write tests.
Spend a lot of time reading forums/etc about how they're used?
Grab a book on the framework you choose and skim through it as you need it.