我想检查Python unittest中的异常,具有以下要求:
我见过很多形式的解决方案:
try:
something()
except:
self.fail("It failed")
不幸的是,这些解决方案吞噬了原始异常。有什么方法可以保留原来的例外吗?
我最终使用了Pierre GM的答案:
try:
something()
except:
self.fail("Failed with %s" % traceback.format_exc())
答案 0 :(得分:2)
根据建议,您可以使用通用异常的上下文:
except Exception, error:
self.fail("Failed with %s" % error)
您还可以通过sys.exc_info()
try:
1./0
except:
(etype, evalue, etrace) = sys.exc_info()
self.fail("Failed with %s" % evalue)
元组(etype, evalue, etrace)
在这里(<type 'exceptions.ZeroDivisionError'>, ZeroDivisionError('float division',), <traceback object at 0x7f6f2c02fa70>)