【unittest】2、unittest重要组件之TaseCase
1、TestCase用法
import unittest
class EcshopLogin(unittest.TestCase):
def test01_baili(self):
print('测试百里')
def test02_weiwei(self):
print('测试微微')
2、执行方式
- 命令执行
python -m unittest 模块名.类名.方法名

- 常见参数:
- -v:更详细的输出结果
- 命令:python -m unittest -v 模块名.类名.方法名
- -k:匹配模式
- 通配符匹配
python -m unittest -v 模块名.类名.方法名 -k *_匹配字段

- 字符串匹配
python -m unittest -v 模块名.类名.方法名 -k 字符串

- 模块方式运行
- 执行命令

- 或者python 模块名.py
- 举例:python ecshop_login.py
- main源码解析:

- module='__main__':测试用例所在的路径__main__表示当前模块
- defaultTest=None:待测用例的名称,默认是所有

- argv=None:接收外部的参数
- testRunner=None:测试运行器,默认是TexyTestRunner
- testLoader=loader.defaultTestLoader:指定使用默认的测试用例加载器
- exit=True:是否在测试完成后结束Python程序
- verbosity=1:类似于命令行-v参数;默认为1
- 0,1,2其中2:为详细信息

- failfast=None:当失败的时候,是否终止测试
- catchbreak=None:是否捕获复制
- warnings=None:是否显示告警信息
- 套件的方式运行
import unittest
class TestExec(unittest.TestCase):
def test_01(self):
print('test_01')
def test_03(self):
print('test_03')
def test_02(self):
print('test_02')
if __name__ == '__main__':
# 初始化测试套件
suite = unittest.TestSuite()
# addTest(ClassName("MethodName"))
suite.addTest(TestExec('test_01'))
unittest.main(defaultTest="suite")
- 执行结果如下:

- 执行器的方式去执行
import unittest
class TestExec(unittest.TestCase):
def test_01(self):
print('test_01')
def test_03(self):
print('test_03')
def test_02(self):
print('test_02')
if __name__ == '__main__':
# 初始化测试套件
suite = unittest.TestSuite()
testcases = [TestExec('test_01'), TestExec('test_02')]
suite.addTests(testcases)
# unittest.main(defaultTest="suite")
unittest.TextTestRunner(verbosity=2).run(suite)
- 执行结果

- 使用加载器去发现测试用例,并执行
# -*- coding: utf-8 -*-
import os
import unittest
class TestExec(unittest.TestCase):
def test_01(self):
print('test_01')
def test_03(self):
print('test_03')
def test_02(self):
print('test_02')
if __name__ == '__main__':
# 第一种写法:
# .discover()自动搜索指定目录下指定开头的.py文件,并将查找到的测试用例组装到测试套件
# suite = unittest.TestLoader().discover(os.getcwd(), "testcase03.py")
# unittest.TextTestRunner(verbosity=2).run(suite)
# 还可以这么写
suite = unittest.TestSuite()
testcases = unittest.TestLoader().discover(os.getcwd(), "testcase03.py")
suite.addTests(testcases)
unittest.TextTestRunner(verbosity=2).run(suite)
3、执行结果
- .:成功
- F:失败
- E:错误
- S:跳过
- x:标记预期失败
- u:意想不到的成功
4、用例执行顺序
- 按ASCII码的规则:[0-9 A-Z a-z]
- 举例:
import unittest
class TestExec(unittest.TestCase):
def test_01(self):
print('test_01')
def test_03(self):
print('test_03')
def test_02(self):
print('test_02')
- 执行结果:

本文来自博客园,作者:郭祺迦,转载请注明原文链接:https://www.cnblogs.com/guojie-guojie/p/91a620fedb7d49c5e6cf825327f21640.html

浙公网安备 33010602011771号