Pyunit源码笔记之九 testsuite执行后,runner/result的结果输出

来源:互联网 发布:游戏编程刚开始学 编辑:程序博客网 时间:2024/05/18 04:38

接上文,test case/suit执行完毕,

回到runner.py

计算运行时间, timeTaken = stopTime - startTime

            try:                test(result)            finally:                stopTestRun = getattr(result, 'stopTestRun', None)                if stopTestRun is not None:                    stopTestRun()            stopTime = time.time()        timeTaken = stopTime - startTime        result.printErrors()        ................

打印错误信息:result.printErrors()

    def printErrors(self):        if self.dots or self.showAll:            self.stream.writeln()        self.printErrorList('ERROR', self.errors)        self.printErrorList('FAIL', self.failures)    def printErrorList(self, flavour, errors):        for test, err in errors:            self.stream.writeln(self.separator1)            self.stream.writeln("%s: %s" % (flavour,self.getDescription(test)))            self.stream.writeln(self.separator2)            self.stream.writeln("%s" % err)

第一篇里面的:

======================================================================  FAIL: testsum (__main__.MyTest)  ----------------------------------------------------------------------  
对应下面的

            self.stream.writeln(self.separator1)            self.stream.writeln("%s: %s" % (flavour,self.getDescription(test)))            self.stream.writeln(self.separator2)

还有:

Traceback (most recent call last):    File "D:\hy\ws\Prj_jd\pkg_jd\utamy.py", line 13, in testsum      self.assertEqual(self.myclassa.addMy(a, b), a * b)  AssertionError: 9 != 20 

对应下面的

            self.stream.writeln("%s" % err)

还有:

----------------------------------------------------------------------Ran 2 tests in 0.016s

对应下面的:

        if hasattr(result, 'separator2'):            self.stream.writeln(result.separator2)        run = result.testsRun        self.stream.writeln("Ran %d test%s in %.3fs" %                            (run, run != 1 and "s" or "", timeTaken))        self.stream.writeln()

还有:

FAILED (failures=1)
对应下面的

        infos = []        if not result.wasSuccessful():            self.stream.write("FAILED")            failed, errored = len(result.failures), len(result.errors)            if failed:                infos.append("failures=%d" % failed)            if errored:                infos.append("errors=%d" % errored)        else:            self.stream.write("OK")        if skipped:            infos.append("skipped=%d" % skipped)        if expectedFails:            infos.append("expected failures=%d" % expectedFails)        if unexpectedSuccesses:            infos.append("unexpected successes=%d" % unexpectedSuccesses)        if infos:            self.stream.writeln(" (%s)" % (", ".join(infos),))        else:            self.stream.write("\n")


阅读全文
1 0