X-Git-Url: http://nitlanguage.org diff --git a/src/nitunit.nit b/src/nitunit.nit index 7eb90bb..e86f92f 100644 --- a/src/nitunit.nit +++ b/src/nitunit.nit @@ -12,7 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Program to extract and execute unit tests from nit source files +# Testing tool. +# see `testing/README` module nitunit import testing @@ -52,7 +53,9 @@ end var model = new Model var modelbuilder = new ModelBuilder(model, toolcontext) -var mmodules = modelbuilder.parse(args) +var module_files = modelbuilder.filter_nit_source(args) + +var mmodules = modelbuilder.parse_full(module_files) modelbuilder.run_phases if toolcontext.opt_gen_unit.value then @@ -64,6 +67,21 @@ var page = new HTMLTag("testsuites") if toolcontext.opt_full.value then mmodules = model.mmodules +for a in args do + if not a.file_exists then + toolcontext.fatal_error(null, "Error: cannot load file or module `{a}`.") + end + # Try to load the file as a markdown document + var mdoc = modelbuilder.load_markdown(a) + page.add modelbuilder.test_mdoc(mdoc) +end + +for a in module_files do + var g = modelbuilder.get_mgroup(a) + if g == null then continue + page.add modelbuilder.test_group(g) +end + for m in mmodules do page.add modelbuilder.test_markdown(m) page.add modelbuilder.test_unit(m) @@ -72,9 +90,8 @@ end var file = toolcontext.opt_output.value if file == null then file = "nitunit.xml" page.write_to_file(file) -print "Results saved in {file}" # print docunits results -print "\nDocUnits:" +print "DocUnits:" if modelbuilder.unit_entities == 0 then print "No doc units found" else if modelbuilder.failed_entities == 0 and not toolcontext.opt_noact.value then