python_单元测试unittest(1)
''''''
'''
1、运行方式
1、鼠标右击
2、在Terminal(控制台)中运行:
先加上
if __name__=='__main__':
unittest.main()
Terminal(控制台)输入命令: python <模块名.py>
2、测试套件(TestSuite)
命令(全部)执行: python -m unittest <模块名.py>
单个执行: python -m unittest <模块名.类名>
python -m unittest <模块名.类名.方法名>
3、加载(TestLoader)
需要先初始化一个对象,suite 测试套件(集合)
3.1--第一种方法)
#初始化测试套件
suite=unittest.Testsuite()
#往测试套件里面添加测试用例,先导入模块
cases=[类名('方法名'),类名('方法名')]
suite.addTests(cases)
3.2--第二种方法)
suite=unittest.Testsuite(tests=cases)
4、运行,测试报告文件,
先打开一个文件
with open('txt','w',encoding='utf8') as f:
#初始化runner,日志详细级别,略->细(0,1(默认),2)
runner=unittest.TextTestRunner(f,verbosity=0)
#运行
runner.run(suite)
5、unittest用例执行顺序是根据方法名,具体是根据ASCII编码
如果根据ASCII编码,可以加数值
def test_add_1_success(self):
pass
def test_add_2_success(self):
pass
6、setUp和tearDown #注意大小写
def setUp(self):
#前置条件
#测试用例方法之前自动执行setup里面的程序
def TearDown(self):
#后置条件
#测试用例方法之后自动执行Teardown里面的程序
7、TestLoader 用来加载测试用例
#可以根据模块加载,也可以根据测试类加载,自己定义规则,自动加载;
7.1) 初始化loader
loader=unittest.TestLoader()
#根据测试类去加载测试用例
cases=loader.loadTestFromTestCase(类名)
suite1=unittest.TestSuite()
suite1.addTests(cases)
8、自动发现测试用例(discover)
# suite=unittest.TestSuite()
#初始化loader
loader=unittest.Testloader()
#自动发现测试用例
start_dir=os.path.dirname(os.path.abspath(__file__))
suite1=loader.discover(start_dir)
9.HTMLtestrunner
9.1导入HTMLtestrunner
from HTMLTestRunnerNew import HTMLTestrunner
修改部分
with open('dem.html','wb') as f:
#初始化runner,日志详细级别,略->细(0,1(默认),2)
runner=unittest.TextTestRunner(f,verbosity=2,title='测试报告名称',tester='测试人员名称')
#运行
runner.run(suite)
9.2测试报告放到一个report文件夹
时间动态的生成一个文件名
先生成一个report文件夹
report_dir=os.path.join(start_dir,'report')
if not os.path.exists(report_dir):
os.mkdir(report_dir)
#报告格式report/2019-09-19.html
导入datatime
from datatime import datatime
time_str=datatime.now().strftime('%Y-%m-%d %H:%M:%S')
file_name=os.path.join(report_dir,time_str+'html')
***************************
*** 测试用例必须以test开头 ***
***************************
'''
十载长安得一第,何须空腹用高心