nose 探究三

一:看一下具体在哪里开始运行的TestProgram

 

 

 

 二:从上可以看到是result = self.testRunner.run(self.test) 负责了具体的运行(TextTestRunner)

 

 

 

 

 

三:ContextSuite

 

 

 

 

def run(self, result):
"""Run tests in suite inside of suite fixtures.
"""
# proxy the result for myself
log.debug("suite %s (%s) run called, tests: %s", id(self), self, self._tests)
#import pdb
#pdb.set_trace()
if self.resultProxy:
result, orig = self.resultProxy(result, self), result
else:
result, orig = result, result
try:
self.setUp()
except KeyboardInterrupt:
raise
except:
self.error_context = 'setup'
result.addError(self, self._exc_info())
return
try:
for test in self._tests:
if result.shouldStop:
log.debug("stopping")
break
# each nose.case.Test will create its own result proxy
# so the cases need the original result, to avoid proxy
# chains
test(orig)
finally:
self.has_run = True
try:
self.tearDown()
except KeyboardInterrupt:
raise
except:
self.error_context = 'teardown'
result.addError(self, self._exc_info())

 

posted @ 2020-06-22 11:23  峡谷恶霸  阅读(135)  评论(0编辑  收藏  举报