1. 程式人生 > >python2和python3在unittest裡的tearDown()使用sys.exc_info()結果不相同

python2和python3在unittest裡的tearDown()使用sys.exc_info()結果不相同

# !/usr/bin/env python
# -*- coding:utf-8 -*-

"""
 @ Author     :Evan
 @ Date       :2018/11/20 12:25
 @ Version    : 1.0
 @ Description:
 @ Modified By:
"""


import sys
import unittest


class TestOne(unittest.TestCase):

    def setUp(self):
        print("this is setup\n")

    def test_first(self):
        self.assertEqual(1, 2)

    def tearDown(self):
        print("this is tearDown\n")
        print("sys.exc_info()", sys.exc_info())


if __name__ == '__main__':
    unittest.main()

這裡面self.assertEqual(1, 2)必定是錯誤的。

首先我們用Python2執行,結果如下:
在這裡插入圖片描述
python2中sys.exc_info()是有資料的!

接著我們用Python3執行,結果如下:
在這裡插入圖片描述
Python3中sys.exc_info()都是None!!

個人能力有限,不知道為什麼。