X-Git-Url: http://nitlanguage.org diff --git a/src/nitunit.nit b/src/nitunit.nit index c057beb..878d3f2 100644 --- a/src/nitunit.nit +++ b/src/nitunit.nit @@ -20,7 +20,7 @@ import testing var toolcontext = new ToolContext -toolcontext.option_context.add_option(toolcontext.opt_full, toolcontext.opt_output, toolcontext.opt_dir, toolcontext.opt_noact, toolcontext.opt_pattern, toolcontext.opt_file, toolcontext.opt_gen_unit, toolcontext.opt_gen_force, toolcontext.opt_gen_private, toolcontext.opt_gen_show) +toolcontext.option_context.add_option(toolcontext.opt_full, toolcontext.opt_output, toolcontext.opt_dir, toolcontext.opt_noact, toolcontext.opt_pattern, toolcontext.opt_file, toolcontext.opt_gen_unit, toolcontext.opt_gen_force, toolcontext.opt_gen_private, toolcontext.opt_gen_show, toolcontext.opt_nitc) toolcontext.tooldescription = "Usage: nitunit [OPTION]... ...\nExecutes the unit tests from Nit source files." toolcontext.process_options(args) @@ -53,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 @@ -61,10 +63,33 @@ if toolcontext.opt_gen_unit.value then exit(0) end +"NIT_TESTING".setenv("true") +"NIT_TESTING_ID".setenv(pid.to_s) +"SRAND".setenv("0") + +var test_dir = toolcontext.test_dir +test_dir.mkdir +"# This file prevents the Nit modules of the directory to be part of the package".write_to_file(test_dir / "packages.ini") + 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.identify_group(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)