ava v3.8.1 Release Notes

Release Date: 2020-04-26 // almost 4 years ago
  • ๐Ÿ‘ Node.js 14 support

    ๐Ÿš€ Great news, this is a feature heavy release!

    ๐Ÿ‘ First off, though, AVA now officially supports Node.js 14. Thank you @zackschuster! 2e7c76b

    โœ… Run tests at specific line numbers

    ๐Ÿฑ AVA can now run tests at specific line numbers! ๐ŸŽ‰

    โœ… Given the following test file:

    โœ… test.js

    1: test('unicorn', t =\> {2:t.pass();3: });4:5: test('rainbow', t =\> {6:t.fail();7: });
    

    โœ… Running npx ava test.js:2 for would run the unicorn test. In fact you could use any line number between 1 and 3.

    ๐Ÿ‘€ This feature is only available from the command line. It won't work if you use tools like ts-node/register or @babel/register, and it does not currently work with @ava/babel and @ava/typescript. See #2473.

    Thank you @ulken for your hard work and patience to get this shipped. 1222ce9

    โœ… Test-specific teardown functions

    Sometimes tests have side-effects you want to clean up. @ulken has implemented t.teardown() which lets you register teardown functions within your test. They'll run once your test has finished, even if it failed: 75cbc3b

    test('read file', t => {
        fs.writeFileSync('file.txt', '๐Ÿ‘‹');
        t.teardown(() => fs.unlinkSync('file.txt');
    
        // Run assertions
    });
    

    Node.js internal in stack traces

    ๐Ÿšš Thanks to @bunysae, stack traces now include Node.js internals. Previously we removed them because we wanted you to focus on your own code, but quite often they do provide context. Now they're displayed, but somewhat dimmed. 9a9351d

    0๏ธโƒฃ Watch mode with the default reporter

    0๏ธโƒฃ Watch mode with the default reporter once again accepts key input. Thanks @pcdevil! 59c227d

    ICYMI

    โœ… afterEach() and afterEach.always() hooks can now determine whether the test passed. Thank you @bunysae for contributing this! 8f312c0

     test('passes', t =\> t.pass()); test.afterEach(t =\> { if (t.passed) { // Do something because the test passed } else { // Do something because the test failed } });
    

    โœ… If you've ever wanted to save some files along with AVA's snapshots, you can now determine the directory path by accessing test.meta.snapshotDirectory. Thank you @ulken! cb5f9f7

    All changes

    ๐Ÿ‘€ See v3.7.1...v3.8.1 for all changes.