[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: [ANN] specl 12 released
- From: Gary Vaughan <gary@...>
- Date: Fri, 25 Apr 2014 14:35:01 +0700
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