anchor.diff:              | head::tail ->sprintf "%s %s" (printNameStack(tail)) head
   
           context.Tests |> List.rev |> List.iter (fun x -> 
  -            self.perform_setup()
  +            TestContext.perform_setup context
               results.reportTestRun()
  -            let nameStack = x.Name :: self.nameStack()
  +            let nameStack = x.Name :: (TestContext.name_stack context)
               let name = printNameStack(nameStack)
               try
                   x.Test()
  
positive.code:     let addTest ctx test = { ctx with Tests = test::ctx.Tests }
      let addSetup ctx setup = { ctx with Setups = setup::ctx.Setups }
      let addTearDown ctx tearDown = { ctx with TearDowns = tearDown::ctx.TearDowns }
      
  type TestCollection(parent, name) =
      let mutable context = TestContext.create ()
      let mutable contexts = []
      let mutable current = None
      new () = TestCollection(None, null)
  
      member self.init (f: unit -> 'a) : (unit -> 'a) =
  
negative.code:             | ex -> 
                  results.reportFailure()
                  results.reportTestName name Error
              TestContext.perform_teardown context
          )
  
          contexts |> List.rev |> List.iter (fun x ->
  