Pythonunit testing中setUpClass和setUp之间的区别

pythonunit testing框架中的setUpClass与setUp之间的区别,为什么不在setUp中设置setUp而不是setUpClass?

我想了解setUp和setUpClass函数以及tearDown和tearDownClass所做的设置的哪一部分。

当你在class上有多个testing方法时,差异就会显现出来。 setUpClasstearDownClass为整个类运行一次; setUptearDown在每个testing方法之前和之后运行。

例如:

 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") 

当你运行这个testing时,它会打印:

 setUpClass setUp test1 tearDown .setUp test2 tearDown .tearDownClass 

(当testing通过时,dots( . )是unittest的默认输出。)注意setUptearDown出现在test1 test2之前和之后,而setUpClasstearDownClass只出现一次,在整个testing用例的开始和结尾。