'Set up a L{Team} with inspectable, synchronous workers that can be
single-stepped.'

def setUp(self):

    (coordinator, self.coordinateOnce) = createMemoryWorker()
    self.coordinator = ContextualWorker(coordinator, worker='coordinator')
    self.workerPerformers = []
    self.allWorkersEver = []
    self.allUnquitWorkers = []
    self.activePerformers = []
    self.noMoreWorkers = (lambda : False)
    def createWorker():
        if self.noMoreWorkers():
            return None
        (worker, performer) = createMemoryWorker()
        self.workerPerformers.append(performer)
        self.activePerformers.append(performer)
        cw = ContextualWorker(worker, worker=len(self.workerPerformers))
        self.allWorkersEver.append(cw)
        self.allUnquitWorkers.append(cw)
        realQuit = cw.quit
        def quitAndRemove():
            realQuit()
            self.allUnquitWorkers.remove(cw)
            self.activePerformers.remove(performer)
        cw.quit = quitAndRemove
        return cw
    self.failures = []
    def logException():
        self.failures.append(Failure())
    self.team = Team(coordinator, createWorker, logException)
