'setup objects along the collector chain to the test-method
and teardown previously setup objects.'

def prepare(self, colitem):

    needed_collectors = colitem.listchain()
    self._teardown_towards(needed_collectors)
    for col in self.stack:
        if hasattr(col, '_prepare_exc'):
            py.builtin._reraise(*col._prepare_exc)
    for col in needed_collectors[len(self.stack):]:
        self.stack.append(col)
        try:
            col.setup()
        except Exception:
            col._prepare_exc = sys.exc_info()
            raise
