51.0 The White Mountains¶
The Avocado team is proud to present another release: Avocado version 51.0, aka, “The White Mountains” now available!
Release documentation: Avocado 51.0
The major changes introduced on this version are listed below, roughly categorized into major topics and intended audience:
Users/Test Writers¶
Users will be given more information when a test reference is not recognized by a given test loader.
Users can now choose to proceed with the execution of a job even if one or more test references have not been resolved by one Avocado test loader (AKA a test resolver). By giving the command line option
--ignore-missing-references=on
, jobs will be executed (provided the job’s test suite has at least one test).The
yaml-to-mux
varianter implementation (the only one at this point) is now an optional plugin. Basically, this means that users deploying this (and later) version of Avocado, should also explicitly install it. Forpip
users, the module name isavocado-framework-plugin-varianter-yaml-to-mux
. The RPM package name ispython-avocado-plugins-varianter-yaml-to-mux
.Users can now choose in which order the job will execute tests (from its suite) and variants. Previously, users would always get one test executed with all its variants, than the second tests with all variants, and so on. Now, users can give the
--execution-order=tests-per-variant
command line option and all tests on the job’s test suite will be executed with the first variant, then all tests will be executed with the second variant and so on. The original (still the current default behavior) can also be available explicitly selected with the command line option--execution-order=variants-per-test
.Test methods on parent classes are now found upon the use of the new recursive <docstring-directive-recursive> docstring directive. While
:avocado: enable
enables Avocado to find INSTRUMENTED tests that do not look like one (more details here),recursive
will do that while also finding test methods present on parent classes.The docstring directives now have a properly defined format. This applies to
:avocado: tags=
docstring directives, used for categorizing tests.Users can now see the tags set on
INSTRUMENTED
test when listing tests with the-V
(verbose) option.
Internal Changes¶
The
jobdata
file responsible for keeping track of the variants on a given job (saved under$JOB_RESULTS/jobdata/multiplex
) is now calledvariants.json
. As it names indicates, it’s now a JSON file that contains the result of the variants generation. The previous file format was based on Python’s pickle, which was not reliable across different Avocado versions and/or environments.Avocado is one step closer to Python 3 compatibility. The basic
avocado
command line application runs, and loads some plugins. Still, the very much knownbyte
versusstring
issues plague the code enough to prevent tests from being loaded and executed. We anticipate that once thebyte
versusstring
is tackled, most functionality will be available.Avocado now uniformly uses
avocado.core.output.LOG_UI
for outputting to the UI andavocado.core.output.LOG_JOB
to output to the job log.Some classes previously regarded as “test types” to flag error conditions have now be rewritten to not inherit from
avocado.core.test.Test
. It’s now easier to identify real Avocado test types.
Improvements for Developers¶
Developers now will also get Python “eggs” cleaned up when running
make clean
.Developers can now run
make requirements-plugins
to (attempt to) install external plugins dependencies, provided they are located at the same base directory where Avocado is.
For more information, please check out the complete Avocado changelog.
Release Meeting¶
The Avocado release meetings are now open to the community via Hangouts on Air. The meetings are recorded and made available on the Avocado Test Framework YouTube channel.
For this release, you can watch the meeting on this link.
Next Release¶
The next Avocado release, 52.0, will be a LTS (Long Term Stability Release). For more information please read RFC: Long Term Stability.