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开头 ***

***************************

'''


posted @ 2019-09-23 01:10  落叶知秋log  阅读(196)  评论(0编辑  收藏  举报