[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