Version 3.1.1

Fixed

  • EtrProcess: Fixed problem where temporary log files were not cleaned up as they should. This was caused by the library being initialized a second time by Robot Framework which cleared the state of known temporary files to clean up. EtrProcess now protects against this.

Previous Versions

Version 3.1.0

Release v3.1.0 of etr is a backwards compatible release with a few minor improvements.

Added

  • EtrProcess: New Robot Framework support library EtrProcess which is a drop-in replacement to the standard library Process with the addition that it sets up file based buffers for stdout and stderr outputs and terminates orphaned processes automatically. The automatic file-backed buffering prevents possible stalls/deadlocks due to blocking write to stdout/stderr due to exhausted PIPE buffers (typically 4096 bytes).

Changed

  • etr.plugins.robot: Improved merged report by automatically naming top-level suite after directory containing the configuration file (etr.yaml). This can be explicitly named using the robot/mergedName attribute of the configuration file.

Version 3.0.0

Release v3.0.0 of etr comes with a few minor features as well as some stability and user experience improvements.

New Features

  • EtrJson: New Robot Framework support library EtrJson that provides keywords for conversion to/from JSON.

  • etr.plugins.jinja2: Added support for controlling Jinja2 template rendering order using an array of file pairs:

    version: "1.0"
    # ...
    
    jinja2:
        files:
            - "src/first.j2": "src/first"
            - "src/second.j2": "src/second"
    
  • etr.plugins.jinja2: Added support for global variables between Jinja2 templates.

    // template1.j2
    {# Set global variable in one template #}
    {% do globals.update(variable="value") %}
    
    // template2.j2
    {# Use variable set in template1.j2 #}
    {{ globals.variable }}
    

    Note

    When assuming a specific template order like this, the templates source files must be ordered using an array in the configuration file to ensure correct rendering order.

  • Added experimental (and undocumented) pytest plugin.

Changed/Removed Features

  • Removed support for file system isolation with osfMount. osfMount has not been delivered with the development environment for some time so it made no sense to keep the support in etr.

Improvements

  • etr.plugins.robot: Merged reports from all executed robot tests are created under logs/merged_report.htm and logs/merged_logs.htm.

  • Improved diagnostic output when a test fail, to display where log files containing additional information is located.

  • Improve diagnostics by performing multiplexed reads from subprocesses which are logged to logs/etr.log.

  • Improved test coverage and fixed lint warnings.

Compatibility

This version of etr breaks compatibility w.r.t. removal of file system isolation support. No other breaking changes are made.

Version 2.0.0

Release v2.0 of etr comes with a few minor features as well as some stability and user experience improvements.

New Features

  • etr provides a Robot Framework utility library EtrUtils with keywords like GetRandomPort to get random free ports that can be used during the tests.

  • etr also provides the possibility to get a random free port in the Jinja2 renderer:

    random_port = {{ etr.utils.get_random_port() }}
    
  • etr attempts to trace and clean up orphaned processes after Robot Framework test execution.

  • Added –version option that reports the version number.

Improvements

  • Use base name from test files in log files to make it easy to identify. For example a singular robot test src/foo.robot now logs to logs/00_foo_log.htm.

  • Improved test coverage and fixed a number of lint warnings.

  • Added stable exit/return codes for CI to be able to identify difference between e.g. test failure and internal errors.

  • Improved logging overall and reduced default log verbosity and moved logs targeted towards etr developers to debug-level (etr -vv).

Compatibility

This version of etr is backwards compatible with previous release.