lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Behaviour Driven Development for Lua

I am happy to announce release 12 of Specl.

Specl's home page is at http://gvvaughan.github.io/specl

This release fixes a couple of embarrassing bugs, as well as rounding
out the experimental `specl.inprocess` module a little.  It is a
recommended upgrade for all users.

* Noteworthy changes in release 12 (2014-04-25) [stable]

** New features:

  - Now that this API is stable, there is full documentation for
    `specl.shell` in doc/specl.md.

  - New `specl.inprocess.capture` function for running examples that
    interact with io streams.  `inprocess.capture` wraps a function call
    so that standard input calls read from the supplied buffer, and any
    output is captured rather than leaked:

      inprocess.capture (function (...)
        print (...)
        io.stderr:write (io.stdin:read "*a")
        return "first", 2
      end,
      {"foo", "bar"},
      "input content")

        => "foo	bar
", "input content", "first", 2

    i.e. standard output, standard error, function return values

  - The report formatter no longer displays orphaned contexts of
    filtered-out examples.

** Bug fixes:

  - Specl no longer crashes when requiring system libraries (such as
    math, bit32 etc) from examples or spec_helpers.

  - The `--fail-fast` option no longer stops when encountering a failing
    expectation in a pending example.

  - Ignore any LUA_INIT or LUA_INIT_5_2 settings in the execution
    environment, since they can easily corrupt the behaviour of example
    code.  If you need to write examples that deliberately interact with
    those envvars, use `specl.shell` to isolate them correctly.

Install it with LuaRocks, using:

    luarocks install specl 12

Until the rocks are available from the official repository in a few days,
you can install directly from the specl release branch, with:

    $ luarocks install \
    https://raw.githubusercontent.com/gvvaughan/specl/release-v12/specl-12-1.rockspec