import unittestimport sysimport pdbimport functoolsimport tracebackdef debug_on(*exceptions): if not exceptions: exceptions = (AssertionError, ) def decorator(f): @functools.wraps(f) def wrapper(*args, **kwargs): try: return f(*args, **kwargs) except exceptions: info = sys.exc_info() traceback.print_exception(*info) pdb.post_mortem(info[2]) return wrapper return decoratorclass tests(unittest.TestCase): @debug_on() def test_trigger_pdb(self): assert 1 == 0
我更正了在异常而不是set_trace上调用post_mortem的代码。



