avocado-framework/avocado

View on GitHub
docs/source/releases/88_0.rst

Summary

Maintainability
Test Coverage
================
88.0 The Serpent
================

The Avocado team is proud to present another release: Avocado 88.0,
AKA "The Serpent", is now available!

Release documentation: `Avocado 88.0
<http://avocado-framework.readthedocs.io/en/88.0/>`_

Users/Test Writers
==================

* The Requirements Resolver feature has been introduced, and it's
  available for general use.  It allows users to describe requirements
  tests may have, and will attempt to fulfill those before the test is
  executed.  This initial version has support for "package"
  requirements, meaning operating system level packages such as RPM,
  DEB, etc.

  Long story short, if you're writing a functional test that
  manipulates Logical Volumes, you may want to declare that the
  ``lvm2`` is a package requirement of your test.

  This can greatly simplify the setup of the environments the tests
  will run on, and at the same time, not cause test errors because of
  the missing requirements (which will cause the test to be skipped).

  For more information please refer to the :ref:`managing-requirements`
  section.

* ``avocado list`` got a ``--json`` option, which will output the
  list of tests in a machine readable format.

* The minimal Python version requirement now is 3.6.  Python 3.5 and
  earlier are not tested nor supported starting with this release.

* Because of the characteristics of the nrunner architecture, it has
  been decided that log content generated by tests will **not** be
  copied to the ``job.log`` file, but will only be available on the
  respective test logs on the ``test-results`` directory.  Still,
  will often need to know if tests have been started or have finished
  while looking at the ``job.log`` file.  This feature has been
  implemented by means of the ``testlogs`` plugin.

* Avocado will log a warning, making it clear that it can not check
  the integrity of a requested asset when no hash is given.  This is
  related to users of the :mod:`avocado.utils.asset` module or
  :meth:`avocado.Test.fetch_asset` utility method.

* Avocado's cache directory defined in the configuration will now have
  the ultimate saying, instead of the dynamic probe for "sensible"
  cache directories that could end up not respecting user's
  configurations.

Bug Fixes
=========

* Avocado will now give an error message and exit cleanly, instead of
  crashing, when the resulting test suite to be executed contains no
  tests.  That can happen, for instance, when invalid references are
  given along with the ``--ignore-missing-references`` command line
  option.

* A crash when running ``avocado distro --distro-def-create`` has been
  fixed.

Internal Changes
================

* All Python files tracked by version control are now checked by linters.

* An :class:`nrunner Task <avocado.core.nrunner.Task>` class now has a
  :data:`category <avocado.core.nrunner.Task.category>`.  Only if a
  task has its category set to ``test`` (the default) it will be
  accounted for in the test results.

* :mod:`avocado.utils.process` now uses :func:`time.monotonic` to
  handle timeouts, which is better suited for the task and will
  survive clock updates.

* The ``core.show`` configuration item (also available as the
  ``--show`` command line option) is now a set of logging streams.

* A :class:`Task's <avocado.core.nrunner.Task>` identifier now gets
  converted to a :class:`avocado.core.test_id.TestID` before being
  handed over to result plugins.

* The ``avocado-runner-avocado-instrumented`` runner now better
  handles its own errors (in addition to the exceptions possibly
  raised by tests).

For more information, please check out the complete
`Avocado changelog
<https://github.com/avocado-framework/avocado/compare/87.0...88.0>`_.