The Avocado team is proud to present another release: Avocado 89.0, AKA “Shrek”, is now available!
Release documentation: Avocado 89.0
The Avocado team is planning to switch the default runner, from the
implementation most people currently use (internally simply called
runner), to the newer architecture and implementation called
nrunner. This may happen as soon as version 90.0 (the next
Users installing and relying on the latest Avocado release will be impacted by this change and should plan accordingly.
To keep using the current (soon to be legacy) runner, you must set
--test-runner=runner command line option (or the equivalent
test_runner configuration option, under section
Known issues are being tracked on our GitHub project page, with the
nrunner tag, and new issue reports are appreciated.
To select the
nrunner on this release (89.0 and earlier),
avocado run --test-runner=nrunner.
- A new
assetrequirement type has been introduced, allowing users to declare any asset obtainable with
avocado.utils.assetto be downloaded, cached and thus be available to tests.
--dry-runis now supported for the
- The man page has been thoroughly updated and put in sync with the
avocadocommand features and options.
- Avocado can now run from Python eggs. It’s expected that official egg builds will be made available starting with Avocado 90.0. Avocado is planning to use eggs as an automatic and transparent deployment mechanism for environments such as containers and VMs.
datadir.paths.data_dirare set to more consistent and predictable values, and won’t rely anymore on dynamic probes for “suitable” directories.
nrunnernow properly sets all test status status to the suite summary, making sure that errors are communicated to the end user through, among other means, the
avocadoexecution exit code.
- When running tests in parallel, multiple downloads of the same image
avocado.utils.vmimage) is now prevented by a better (early) locking.
- A condition in which tests running in parallel could collide over the existence of the asset’s cache directory (created by other running tests) is now fixed.
avocado.utils.software_manager.SoftwareManager.extract_from_package()is a new method that lets users extract the content of supported package types (currently
avocado.utils.vmimage.get()is now deprecated in favor of
avocado.core.plugin_interfaces.Discovereris a new type of plugin interface that has been introduced to allow tests to be discovered without the need of references.
- Avocado now uses
time.monotonic()pretty much everywhere it’s possible. This time function will survive clock updates, and will never go back.
- The safeloader, the Avocado component that looks for
python-unittesttests without executing possibly untrusted code, has seen a big refactor in this release, with an extended test coverage too.
avocado-runner-requirement-packagewill now check for a package before installing it. This is an optimization and reduces the chance of multiple instances attempting to install packages at the same time.
- Improvements to the handling and saving of messages generated by the
nrunnerreceived some prep work for supporting variants. Jobs using the
nrunnercan now see the variants being applied to test suites, but be aware that the parameters on variants are still not passed to the tests.
- The requirement runnables now have access to their “parent” configuration.
- The documentation has been update and gives more precise instructions for the set up of development environments.
- Major changes to the CI, in a trend towards using more GH Actions based jobs.
For more information, please check out the complete Avocado changelog.