开发者社区> 问答> 正文

Python unittest中的setUp()和setUpClass()有什么区别?

setUp()和setUpClass()Python unittest框架有什么区别?为什么设置会以一种方法而不是另一种方法处理?

我想了解什么设置的一部分在完成setUp()和setUpClass()功能,以及与tearDown()和tearDownClass()。

展开
收起
祖安文状元 2020-02-21 15:54:33 1130 0
2 条回答
写回答
取消 提交回答
  • 代码改变世界,我们改变代码

    setUp每个case都执行一次。

    setupClass,只执行一次。

    2020-03-18 17:55:03
    赞同 展开评论 打赏
  • 当您的类中有多个测试方法时,差异就会显现出来。setUpClass而tearDownClass一旦被全班运行; setUp并tearDown在每种测试方法之前和之后运行。

    例如:

    class Example(unittest.TestCase):
        @classmethod
        def setUpClass(cls):
            print("setUpClass")
    
        def setUp(self):
            print("setUp")
    
        def test1(self):
            print("test1")
    
        def test2(self):
            print("test2")
    
        def tearDown(self):
            print("tearDown")
    
        @classmethod
        def tearDownClass(cls):
            print("tearDownClass")
    
    

    运行此测试时,它会打印:

    setUpClass
    setUp
    test1
    tearDown
    .setUp
    test2
    tearDown
    .tearDownClass
    
    

    (该点(.)是unittest的默认输出时,测试通过)观察到setUp和tearDown之前和之后出现test1 和 test2,而setUpClass和tearDownClass只出现一次,在整个测试案例的开始和结束。

    2020-02-21 15:54:49
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载