[Avocado-devel] Avocado 0.25.0 released!
Lucas Meneghel Rodrigues
lmr at redhat.com
Tue Jun 16 15:45:29 UTC 2015
Hi guys, I'm here to announce the newest avocado release, 0.25.0. This
is an
important milestone in avocado development, and we would like to invite
you to be a part of the development process, by contributing PRs,
testing
and giving feedback on the test runner's usability and new plugins we
came
up with.
What to expect
This is the first release aimed for general use. We did our best to
deliver
a coherent and enjoyable experience, but keep in mind that it's a young
project, so please set your expectations accordingly. What is expected
to work
well:
* Running avocado 'instrumented' tests
* Running arbitrary executables as tests
* Automatic test discovery and run of tests on directories
* xUnit/JSON report
Known Issues
* HTML report of test jobs with multiplexed tests has a minor naming
display
issue that is scheduled to be fixed by next release.
* avocado-vt might fail to load if virt-test was not properly
bootstrapped.
Make sure you always run bootstrap in the virt-test directory on any
virt-test git updates to prevent the issue. Next release will have
more
mechanisms to give the user better error messages on tough to judge
situations (virt-test repo with stale or invalid config files that
need
update).
Changes
* The Avocado API has been greatly streamlined. After a long discussion
and
several rounds of reviews and planning, now we have a clear
separation of
what is intended as functions useful for test developers and
plugin/core
developers:
* avocado.core is intended for plugin/core developers. Things are
more fluid
on this space, so that we can move fast with development
* avocado.utils is a generic library, with functions we found out to
be
useful for a variety of tests and core code alike.
* avocado has some symbols exposed at its top level, with the test
API:
* our Test() class, derived from the unittest.TestCase() class
* a main() entry point, similar to unittest.main()
* VERSION, that gives the user the avocado version (eg 0.25.0).
Those symbols and classes/APIs will be changed more carefully, and
release
notes will certainly contain API update notices. In other words,
we'll be
a lot more mindful of changes in this area, to reduce the
maintenance cost
of writing avocado tests.
We believe this more strict separation between the available APIs
will help
test developers to quickly identify what they need for test
development, and
reduce following a fast moving target, what usually happens when we
have a
new project that does not have clear policies behind its API design.
* There's a new plugin added to the avocado project: avocado-vt. This
plugin
acts as a wrapper for the virt-test test suite
(https://github.com/autotest/virt-test), allowing people to use
avocado to
list and run the tests available for that test suite. This allows
people to
leverage a number of the new cool avocado features for the virt tests
themselves:
* HTML reports, a commonly asked feature for the virt-test suite. You
can
see a screenshot of what the report looks like here:
https://cloud.githubusercontent.com/assets/296807/7406339/7699689e-eed7-11e4-9214-38a678c105ec.png
* You can run virt-tests on arbitrary order, and multiple instances
of a
given test, something that is also currently not possible with the
virt
test runner (also a commonly asked feature for the suite.
* System info collection. It's a flexible feature, you get to
configure
easily what gets logged/recorded between tests.
* The avocado multiplexer (test matrix representation/generation system)
also received a lot of work and fixes during this
release. One of the most visible (and cool) features of 0.25.0 is the
new,
improved --tree representation of the multiplexer file:
$ avocado multiplex examples/mux-environment.yaml -tc
┗━━ run
┣━━ hw
┃ ┣━━ cpu
┃ ┃ ╠══ intel
┃ ┃ ║ → cpu_CFLAGS: -march=core2
┃ ┃ ╠══ amd
┃ ┃ ║ → cpu_CFLAGS: -march=athlon64
┃ ┃ ╚══ arm
┃ ┃ → cpu_CFLAGS: -mabi=apcs-gnu -march=armv8-a
-mtune=arm8
┃ ┗━━ disk
┃ ╠══ scsi
┃ ║ → disk_type: scsi
┃ ╚══ virtio
┃ → disk_type: virtio
┣━━ distro
┃ ╠══ fedora
┃ ║ → init: systemd
┃ ╚══ mint
┃ → init: systemv
┗━━ env
╠══ debug
║ → opt_CFLAGS: -O0 -g
╚══ prod
→ opt_CFLAGS: -O2
We hope you find the multiplexer useful and enjoyable.
* If an avocado plugin fails to load, due to factors such as missing
dependencies, environment problems and misconfiguration, in order to
notify
users and make them mindful of what it takes to fix the root causes
for the
loading errors, those errors are displayed in the avocado stderr
stream.
However, often we can't fix the problem right now and don't need
the constant stderr nagging. If that's the case, you can set in your
local
config file:
[plugins]
# Suppress notification about broken plugins in the app
standard error.
# Add the name of each broken plugin you want to suppress the
notification
# in the list. The names can be easily seen from the stderr
messages. Example:
# avocado.core.plugins.htmlresult ImportError No module named
pystache
# add 'avocado.core.plugins.htmlresult' as an element of the
list below.
skip_broken_plugin_notification = []
* Our documentation has received a big review, that led to a number of
improvements. Those can be seen online
(http://avocado-framework.readthedocs.org/en/latest/), but if you
feel so
inclined, you can build the documentation for local viewing, provided
that
you have the sphinx python package installed by executing:
$ make -C docs html
Of course, if you find places where our documentation needs
fixes/improvements, please send us a PR and we'll gladly review it.
* As one would expect, many bugs were fixed. You can take a look at the
full
list of 156 commits here:
https://github.com/avocado-framework/avocado/compare/0.24.0...0.25.0
More information about the Avocado-devel
mailing list