@@ -713,10 +713,11 @@ class UnitTestClass
713713 for i, test in pairs tests
714714 unless test\ run unpack res
715715 failedCnt += 1
716+ failed[ # failed+ 1 ] = test
716717 if abortOnFail
717718 @logger . indent -= 1
718719 @logger \ warn msgs. run. abort, @name , i
719- return false , i
720+ return false , failed
720721
721722 @logger . indent -= 1
722723 @success = failedCnt == 0
@@ -726,8 +727,7 @@ class UnitTestClass
726727 return true
727728
728729 @logger \ log msgs. run. testsFailed, @name , failedCnt, testCnt
729- return false , failedCnt
730-
730+ return false , failed
731731
732732
733733-- - A DependencyControl unit test suite.
@@ -807,7 +807,7 @@ class UnitTestSuite
807807 -- @treturn[2] boolean false (test class failed)
808808 -- @treturn[2] {@{UnitTest}, ...} a list of unit test that failed
809809 run : ( abortOnFail, order = @order ) =>
810- classes = @classes
810+ classes, allFailed = @classes , {}
811811 if order
812812 classes, mappings = {} , { cls. name, cls for cls in * @classes }
813813 for i, name in ipairs order
@@ -819,17 +819,19 @@ class UnitTestSuite
819819 @logger . indent += 1
820820
821821 for i, cls in pairs classes
822- unless cls\ run abortOnFail
822+ success, failed = cls\ run abortOnFail
823+ unless success
823824 failedCnt += 1
825+ allFailed[ # allFailed+ 1 ] = test for test in * failed
824826 if abortOnFail
825827 @logger . indent -= 1
826828 @logger \ warn msgs. run. abort, i
827- return false , i
829+ return false , allFailed
828830
829831 @logger . indent -= 1
830832 @success = failedCnt == 0
831833 if @success
832834 @logger \ log msgs. run. success
833835 else @logger \ log msgs. run. classesFailed, failedCnt, classCnt
834836
835- return @success , failedCnt
837+ return @success , failedCnt > 0 and allFailed or nil
0 commit comments