makeSuite执行顺序:
- 创建容器对象,并且将用例添加到容器中
- 找个
人
去执行容器中的用例,这个人
我们称为执行器
makeSuite容器有两种方式添加用例:
- suite.addTest(用例对象),每次往容器中添加一个
- suite.addTests([用例对象1, 用例对象2, ......]),一次添加多个用例
- suite.countTestCases(),输出当前容器中有多少用例
注意:有的同学可能在写unittest.makeSuite的时候,点不出来makeSuite
,不要怕,生写就完了,千万不要怕飘黄。
import unittest
class MyTestCase(unittest.TestCase):
def case_01(self):
self.assertTrue('FOO'.isupper()) # 'FOO'.isupper() --> True
def case_02(self):
self.assertTrue('Foo'.isupper())
def case_03(self):
self.assertTrue('bar'.islower())
def test_case_01(self):
self.assertEqual(1, 1)
def test_case_02(self):
self.assertEqual(1, 0)
if __name__ == '__main__':
# 创建容器并且同时将用例添加到容器中
suite = unittest.makeSuite(testCaseClass=MyTestCase, prefix='case')
print(11111111111, suite.countTestCases())
# 执行器执行容器中的用例
unittest.TextTestRunner().run(suite)
# 创建容器并且同时将用例添加到容器中
suite = unittest.makeSuite(testCaseClass=MyTestCase)
print(11111111111, suite.countTestCases())
# 执行器执行容器中的用例
unittest.TextTestRunner(verbosity=2).run(suite)
# 创建容器并且同时将用例添加到容器中
map_obj = map(MyTestCase, ['case_01', 'case_02', 'case_03'])
suite = unittest.makeSuite(testCaseClass=MyTestCase)
print(11111111111, suite.countTestCases())
suite.addTests(map_obj)
print(22222222222, suite.countTestCases())
# 执行器执行容器中的用例
unittest.TextTestRunner(verbosity=2).run(suite)