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 模块名.类名.方法名
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
- 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')