I'm looking at the AVA test runner, and it's concurrency feature seems pretty compelling. However, I'm used to Mocha, where you can organize your tests like so:
describe('Some Class', () => {
describe('#someMethod', () => {
describe('some condition', () => {
it('does something', () => {});
});
});
});
By organizing tests this way you can easily tell what components are affected when a bunch of tests fail, and you can easily re-run the tests for a specific class/method/condition.
But AVA doesn't have any of that. Its tests lack any "meta-information" at all and are just:
test(t => {
t.deepEqual([1, 2], [1, 2]);
});
But obviously AVA is a popular and widely-used framework, so my question is: how does it work without test meta-information? Is there some other way of defining meta-information in AVA? Is the meta-information just not needed because of other features AVA has?
Basically, as an AVA outsider, I'm trying to understand how it works when you have a real test suite (not just the basic tests shown in the AVA examples). Or to put it another way, if I switch to AVA, will I miss the test organization that's in Mocha (and most other test runners)?