# make all instead of make platform, this would allow to remove platform.sh # also avoid setnv_lua.sh if possible # ensure luarocks package are installed inside insall location /home/travis/build/bluebird75/luaunit/install/luarocks/share/lua/5.1/luarocks" /home/travis/build/bluebird75/luaunit/install/luarocks/share/lua/5.1/luarocks" TODO Future: ============ - run a full modules with a function - build lua with ASAN, memory sanitizer and so on on travis before running it - ensure that assert string functions like assertStr, strcontains, etc reject incorrect type with a correct error message - pretty function formatting: https://github.com/luarocks/luarocks/blob/master/src/luarocks/core/util.lua - platform detection: - document prettystr - validate output with ignored tests (0 failures or some failures) - parametrize tests - coloured output - better error messages for string differences (diffing) - print local variables upon assertion error: + debug.get_local( ) will get the local variables in the current context + debug.get_upvalue( ) will get the upvalues in the current context - see inspect for better table printing: https://github.com/kikito/inspect.lua + print list part separate from the dict part in a table + print metatables in tables - see StackTracePlus for printing more stack information: https://github.com/ignacio/StackTracePlus - how does busted deal with nested tables ? functions ? - look at serpent to see how to improve nested table printing - function should be printed as - print table of test test_filterWithPattern and see how to improve readability - shuffle should shuffle separately classes and then class methods - add assertTableContains and assertTableNotContains to check the presence / absence of value in an array - look at serpent to see how to improve nested table printing - doc about usage of prettystr & assertion library - assertListContainsElements - assertListContainsElements - checkXXX for every assertXXX - review and enhance: TestLuaUnitExecution:test_withTableErrorInside Version 3.5 (future): ============ Planned: -------- - global setup / teardown - class setup / teardown - report test duration everywhere - add date and duration to tap output - XML: report system information - align the "OK" vertically for text output - better detection of screen size - move all file:line description to stack trace - better deal with one line formatting - table_contains(): + check with finding table or nested tables + add check for error messages - correctly compare tables with same content but different metatable Already done: ------------- - Version 3.4: ============ TODO: - assertAlmostNotEquals shall support tables - document the release process to luarocks and update dev manual - add test for the runner interface of luaunit - update examples - dev guide: explain doit.py - dev guide: explain CI Done - add a list of environment variables controlling LuaUnit - double-check documentation generation - move enabling global namespace pollution explanation to a later chapter - update doc about TABLE_EQUALS_KEYBYCONTENT - update doc about test skipping - update documentation about how to run list of test classes - update documentation about setOutputType() - assertAlmostEquals can check lists and more complex structures - can choose test output type through environment variables LUAUNIT_OUTPUT - setOutputType() also accepts the xml filename when using the format junit - simplify printing of table-info in cycles - allow to skip tests - fix a bug where assertIs/assertNotIs would not deal with protected metatables - fix a bug in dealing with table including cycles of different structure - remove option TABLE_EQUALS_KEYBYCONTENT, it did not make sense Version 3.3: ============ - make sure that example source code is included in documentation when packaging - add annex to documentation with full source code of example - add annex with BSD license - verify that assertError functions all work with tables, review implementation in detail - useRe -> usePattern - add success() to terminate test successfully - doc: explain that prettystr() is used in assertions - check rock installation of luaunit - add custom message support - build luarocks - update contributors - update download badge - doc about prettystr - add fail() to force test failure - use caching on travis-ci - assertAlmostEqual no longer includes a default margin, margin must always be explicitly specified. - verify that lu.EPS by calculation - fix include/exclude bug (see https://github.com/bluebird75/luaunit/pull/82 ) - doc about scientific computing dedicated functions - assertions for nan and inf and +/- zero - fixes for junit and tap output - doc improvements - better error messages for list assertions: + expected length of X, got Y + index differing in table 1 and 2 - more doc about assertTrue/False/... with a table - randomized testing - can run a tests numerous times (useful for triggering the JIT effect) - can include and exclude tests from the test list Done since 3.1: =============== x provide a luarock package. See: https://rocks.moonscript.org/modules/rjpcomputing/luaunit x make a difference between errors and failures x lua 5.3 x travis lua 5.3 x compatibility with LuaUnit v2.0 of rjbcomputing x provide a legacy wrapFunction() Done since 3.0: =============== x check documentation link glitch to TAP x doc: report how to handle global space pollution/restriction x doc: adapt all examples to new way of requireing luaunit x less global space pollution x doc: move description of table printing to an annex x validate well-formed XML with a DTD x validate test output (TAP, ...) with functional tests x test failures, verify that output is correct x improve testresult: contain the list of tests, with status of each test x strip luaunit stack more intelligently: exclude content of luaunit x mention mailing-list in README.md x mention version in documentation x mention mailing-list x mention the new global variable config for displaying table content x fix display of tables with recursive references x improve display of nested tables in error messages x improve display of multiline strings in error messages x Junit XML Ouptut: x test and fix xml escaping x validate xml with apache and jenkins schemas + xml format: - add proper xml formatting header - report number of failures within element - report duration - add properties describe the environment Done: ============ x add email to report vulnerabilities in private x add other types of output x assert with matching of the error message x finish user documentation x switch version 3.0 x add assertMatch for strings x document --name x improve junit xml output (one file, choice of filename) x display number of non selected tests x assertIs with all types x mention one file distribution x improve TAP output: pre-calculate test numbers, display test summary as comment x test error messages of assertStrMatches and all error functions x assertNil + assertNotNil x readthedocs integration x add travis-ci badges to README x filter by pattern x support --version x support --help x replace methodInstance with real test name in reports x better error messages for wrong command line option, or wrong output type x control verbosity and output type with command line x display time to run all tests x move all assertions together x better error display of assertIsXXX functions x add assertContains for strings x add assertIsNumber, assertIsXXX x table assertions x sequence asserts x compatibilty tests with several version of lua x add assertNotEquals Release TODO: ============= - all tests green in Travis and AppVeyor - doc is green in read-the-docs - documentation is updated with release content - doit.py runtests success - tag set on the code - upload release to GitHub - prepare luarocks and upload to luarocks - verify smooth installation of luarocks - annonce release on lua mailing-list