by Philippe Fremy
Luaunit is a unit-testing framework for Lua. It allows you to write test functions and test classes with test methods, combined with setup/teardown functionality. A wide range of assertions are supported.
Luaunit supports several output format, like Junit or TAP, for easier integration into Continuous Integration platforms (Jenkins, Maven, ...) . The integrated command-line options provide a flexible interface to select tests by name or patterns, control output format, set verbosity, ...
LuaUnit works with Lua 5.1, 5.2 and 5.3 . It was tested on Windows XP, Windows Server 2012 R2 (x64) and Ubuntu 14.04 (see continuous build results on Travis-CI and AppVeyor ) and should work on all platforms supported by lua. It has no other dependency than lua itself.
LuaUnit is packed into a single-file. To make start using it, just add the file to your project.
LuaUnit is maintained on github: https://github.com/bluebird75/luaunit
It is released under the BSD license.
Documentation is available on read-the-docs
Community
LuaUnit has a mailing list with low activity (a few emails per months). To subscribe or read the archives, please go to: LuaUnit Mailing-list. If you are using LuaUnit, please drop us a note, we are always happy to hear from new users.
- luaunit no longer pollutes global namespace, unless defining EXPORT_ASSERT_TO_GLOBALS to true
- fixes and validation of JUnit XML generation
- strip luaunit internal information from stacktrace
- general improvements of test results with duration and other details
- improve printing for tables, with an option to always print table id
- fix printing of recursive tables
Important note when upgrading to version 3.1 : assertions functions are no longer exported directly to the global namespace. See documentation for upgrade paths.
Since some people have forked LuaUnit and release some 2.x version, I am jumping the version number.
- moved to Github
- full documentation available in text, html and pdf at read-the-docs.org
- new output format: JUnit
- much better table assertions
- new assertions for strings, with patterns and case insensitivity: assertStrContains, assertNotStrContains, assertNotStrIContains, assertStrIContains, assertStrMatches
- new assertions for floats: assertAlmostEquals, assertNotAlmostEquals
- type assertions: assertIsString, assertIsNumber, ...
- error assertions: assertErrorMsgEquals, assertErrorMsgContains, assertErrorMsgMatches
- improved error messages for several assertions
- command-line options to select test, control output type and verbosity
- compatibility with Lua 5.1 and 5.2
- better object model internally
- a lot more of internal tests
- several internal bug fixes
- make it easy to customize the test output
- running test functions no longer requires a wrapper
- several level of verbosity
- switch from X11 to more popular BSD license
- add TAP output format for integration into Jenkins
- official repository now on github
- port to lua 5.1
- iterate over the test classes, methods and functions in the alphabetical order
- change the default order of expected, actual in assertEquals (adjustable with USE_EXPECTED_ACTUAL_IN_ASSERT_EQUALS).
- first public release
- move global variables to internal variables
- assertion order is configurable between expected/actual or actual/expected
- new assertion to check that a function call returns an error
- display the calling stack when an error is spotted
- two verbosity level, like in python unittest