From f065edad7b00bc503a5b17aea1ee3798be1d1c12 Mon Sep 17 00:00:00 2001 From: Alexandre Terrasa Date: Fri, 3 Feb 2017 01:54:28 -0500 Subject: [PATCH] testing: compile before and after methods Tests case will fail if the before method failed. Signed-off-by: Alexandre Terrasa --- src/testing/testing_suite.nit | 44 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/src/testing/testing_suite.nit b/src/testing/testing_suite.nit index dc29ea5..295598b 100644 --- a/src/testing/testing_suite.nit +++ b/src/testing/testing_suite.nit @@ -124,6 +124,9 @@ class TestSuite # Display test suite status in std-out. fun show_status do + var test_cases = self.test_cases.to_a + if before_module != null then test_cases.add before_module.as(not null) + if after_module != null then test_cases.add after_module.as(not null) toolcontext.show_unit_status("Test-suite of module " + mmodule.full_name, test_cases) end @@ -148,8 +151,31 @@ class TestSuite return end toolcontext.info("Execute test-suite {mmodule.name}", 1) + var before_module = self.before_module - if not before_module == null then before_module.run + var after_module = self.after_module + + if before_module != null then + before_module.run + toolcontext.clear_progress_bar + toolcontext.show_unit(before_module) + if before_module.error != null then + for case in test_cases do + case.fail "Nitunit Error: before_module test failed" + toolcontext.clear_progress_bar + toolcontext.show_unit(case) + end + if after_module != null then + after_module.fail "Nitunit Error: before_module test failed" + toolcontext.clear_progress_bar + toolcontext.show_unit(after_module) + end + show_status + print "" + return + end + end + for case in test_cases do case.run toolcontext.clear_progress_bar @@ -157,8 +183,12 @@ class TestSuite show_status end - var after_module = self.after_module - if not after_module == null then after_module.run + if not after_module == null then + after_module.run + toolcontext.clear_progress_bar + toolcontext.show_unit(after_module) + show_status + end show_status print "" @@ -170,9 +200,17 @@ class TestSuite file.addn "intrude import test_suite" file.addn "import {mmodule.name}\n" file.addn "var name = args.first" + var before_module = self.before_module + if before_module != null then + before_module.write_to_nit(file) + end for case in test_cases do case.write_to_nit(file) end + var after_module = self.after_module + if after_module != null then + after_module.write_to_nit(file) + end file.write_to_file("{test_file}.nit") end -- 1.7.9.5