anchor.diff:  
       memoryAllocationProvider.PostTearDown;
   
  +    Self.Loggers_EndTeardownTest(threadId, test as ITestInfo);
       result := true;
     except
       on e: {$IFDEF USE_NS}System.SysUtils.{$ENDIF}Exception do
  
positive.code:   except
      on e: Exception do
      begin
        tests := fixture.Tests;
        // Log error into each test
        for test in tests do
        begin
          if not ShouldRunThisTest(test) then
            System.Continue;
  
          Self.Loggers_BeginTest(threadId, test as ITestInfo);
          testResult := ExecuteErrorResult(context, threadId, test, e, FLogMessagesEx);
          RecordResult(context, threadId, fixtureResult, testResult);
          Self.Loggers_EndTest(threadId, testResult);
        end;
        Log(TLogLevel.Error, Format(SFixtureSetupError, [fixture.Name, e.Message]));
        Log(TLogLevel.Error, SSkippingFixture);
      end;
  
negative.code: end;
  
  procedure TDUnitXTestRunner.ExecuteSetupFixtureMethod(const context: ITestExecuteContext; const threadId: TThreadID; const fixture: ITestFixture; const fixtureResult: IFixtureResult);
  begin
    try
      Self.Loggers_SetupFixture(threadid, fixture as ITestFixtureInfo);
  