Go to file
Scott Vokes 32e3ecfdb6 Merge pull request #21 from davegoopot/patch-1
Fixing the web address for lunit
2015-06-19 17:20:49 -04:00
files update API docs 2012-07-23 20:23:35 -04:00
modules update API docs 2012-07-23 20:23:35 -04:00
rockspecs Add rockspecs directory for LuaRocks 2014-04-03 00:19:08 +02:00
README.md Fixing the web address for lunit 2015-06-19 21:53:36 +01:00
index.html Oops, add index.html from luadoc, too. 2010-03-06 16:04:36 -05:00
luadoc.css Add luadoc and README. 2010-03-06 15:56:37 -05:00
lunatest.lua Upgrade to Lua 5.2, but keep compatible with Lua 5.1 2014-04-01 00:34:22 +02:00
suite-hooks-fail.lua Upgrade to Lua 5.2, but keep compatible with Lua 5.1 2014-04-01 00:34:22 +02:00
suite-hooks.lua Upgrade to Lua 5.2, but keep compatible with Lua 5.1 2014-04-01 00:34:22 +02:00
suite-with-random-tests.lua Upgrade to Lua 5.2, but keep compatible with Lua 5.1 2014-04-01 00:34:22 +02:00
test-error_handler.lua Upgrade to Lua 5.2, but keep compatible with Lua 5.1 2014-04-01 00:34:22 +02:00
test-teardown_fail.lua Upgrade to Lua 5.2, but keep compatible with Lua 5.1 2014-04-01 00:34:22 +02:00
test.lua Upgrade to Lua 5.2, but keep compatible with Lua 5.1 2014-04-01 00:34:22 +02:00

README.md

Lunatest is an xUnit-style, Lua-based unit testing framework with additional support for randomized testing (a la QuickCheck).

It's largely upwardly compatible from lunit, with the following changes:

  • Where lunit uses assert(), lunatest uses assert_true(). lunatest does not change any functions from the standard library.
  • If running tests in only one file, no module declaration is necessary.
  • For multiple suites, register them with lunatest.suite("file"). This uses require the file suite to return a table containing the suite related functions as well as the test functions. (Note: non local tests functions found outside the returned table go to the main suite.)
  • It doesn't have any dependencies except Lua, though if present, it will use lhf's lrandom module (for consistent pseudorandom numbers across operating systems) and luasocket's gettime() for timestamps).

The main (or only) test file should end in lunatest.run(), and can be run as a normal lua script. The following command-line arguments are supported:

  • -v: verbose mode, which lists every test's name, result, and runtime.
  • -s / --suite pattern: Only run suite(s) with names matching the pattern.
  • -t / --test pattern: Only run test(s) with names matching the pattern.

For further examples, see the API documentation and included test suite.

Like Lua itself, Lunatest is distributed under the MIT license.