--- -- Premake automated test runner. --- include "../tests/testfx.lua" local focus = {} if _OPTIONS["test"] then focus = string.explode(_OPTIONS["test"] or "", ".", true) end -- -- Find and load all of the test file manifests -- local mask = path.join(_MAIN_SCRIPT_DIR, "**/tests/_tests.lua") local manifests = os.matchfiles(mask) -- Hmm, "**" should probably also match against "."? local top = path.join(_MAIN_SCRIPT_DIR, "tests/_tests.lua") if os.isfile(top) then table.insert(manifests, 1, top) end for i = 1, #manifests do local manifest = manifests[i] _TESTS_DIR = path.getdirectory(manifest) local files = dofile(manifest) for f = 1, #files do dofile(path.join(_TESTS_DIR, files[f])) end end -- -- Run them and show the results -- local startTime = os.clock() passed, failed = test.runall(focus[1], focus[2]) io.write('running time : ', os.clock() - startTime,'\n') msg = string.format("%d tests passed, %d failed", passed, failed) if (failed > 0) then print(msg) os.exit(5) else print(msg) end