We're celebrating the new year with the official AVA 4 release! 🎊
npm install -D ava
The cool new stuff 🆒
Worker threads 🧑💼
By default, test files are now run in worker threads! Huge thanks to @dnlup for landing this.
Test files should run a little quicker, since it's easier to spin up a worker thread than a child process. You can use --no-worker-threads on the command line, or workerThreads: false in your AVA configuration, to fall back to using child processes.
Shared workers are no longer experimental 🎊
Shared workers are no longer experimental. This is a powerful feature that loads a program in a worker thread in AVA's main process and then communicate with code running in the test workers. This enables your tests to better utilize shared resources during a test run, as well as providing opportunities to set up these resources before tests start (or clean them up after).
When you use watch mode, shared workers remain loaded across runs.
Improved test selection 🤳
AVA selects test files based on your package.json or ava.config.* configuration files. When used on the CLI you can then provide patterns to select a subset of these files.
You can now pass a folder and AVA will select the test files contained therein. Or you can provide a specific JavaScript file and AVA will run it even if it wasn’t selected by your configuration.
If AVA finds files based on the configuration, but none of those were selected to the CLI arguments, it now prints a warning.
Better monorepo support 🚝
AVA now looks for ava.config.* files in parent directories, until it finds a directory with a .git directory (or file). This lets you specify AVA configuration at the top of your monorepo and still run AVA from within each package.
New snapshot format 📸
@ninevra has worked tirelessly on landing a new snapshot format. It contains all information necessary to regenerate the report file. This allows for snapshots to be updated even if tests or assertions are skipped.
Previously failing test files run first 🏃
AVA now records which test files failed in the previous run. It then prioritizes testing these files when you run AVA again. Thanks @bunysae!
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps ava from 3.15.0 to 4.0.1.
Release notes
Sourced from ava's releases.
... (truncated)
Commits
6b63b1b
4.0.1c384e9a
Fix encoding of large snapshot data9bc615e
4.0.0f09742f
Clean up documentation in preparation for AVA 40187779
Dependency updates29024af
Test compatibility with TypeScript 4.58df118b
Use AVA 4 for the self-hosted testsbedd1d0
Remove dependency onequal-length
d4ec097
Improve wording in TypeScript recipeb3a1b72
Mention experimental specifier resolution in TypeScript recipeDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)