         @_interpretedFunction = null
         @async = false
         @parent = null
+        @resetAllResults()
+    resetAllResults: ->
         @unitResults = []
         @result = null
     define: (fun) ->

        @
    getEnv: ->
        r = $mate.testing.objectClone(@_env)
        @getAncestors().forEach((ancestor) ->
            Object.keys(ancestor._env).forEach((key) ->
                if key not in Object.keys(r) then r[key] = ancestor._env[key]
            )
        )

            test = test.parent
        r
    run: (showsMessage = true) ->
        @resetAllResults()
        if @_fun?
            @_interpret()
            # We use `setTimeout(..., 0)` only to make all tests "unordered", at least theoretically.
