'Run the given test case or test suite.'

def run(self, test, skipped):

    result = self._makeResult()
    startTime = time.time()
    test(result)
    stopTime = time.time()
    timeTaken = (stopTime - startTime)
    result.printErrors()
    self.stream.writeln(result.separator2)
    run = result.testsRun
    if _unavail:
        requested = _unavail.keys()
        requested.sort()
        self.stream.writeln(('Ran    %d    test%s    in    %.3fs    (%s    module%s    skipped)' % (run, (((run != 1) and 's') or ''), timeTaken, len(skipped), (((len(skipped) != 1) and 's') or ''))))
        self.stream.writeln(('Unavailable    resources:    %s' % ',    '.join(requested)))
    else:
        self.stream.writeln(('Ran    %d    test%s    in    %.3fs' % (run, (((run != 1) and 's') or ''), timeTaken)))
    self.stream.writeln()
    if (not result.wasSuccessful()):
        self.stream.write('FAILED    (')
        (failed, errored) = map(len, (result.failures, result.errors))
        if failed:
            self.stream.write(('failures=%d' % failed))
        if errored:
            if failed:
                self.stream.write(',    ')
            self.stream.write(('errors=%d' % errored))
        self.stream.writeln(')')
    else:
        self.stream.writeln('OK')
    return result
