栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

三、unittest测试用例五种运行方式

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

三、unittest测试用例五种运行方式

TestCase用法:

import os
import unittest


class EcshopLogin(unittest.TestCase):

    #测试用例
    def test01_xiaoming(self):
        print("测试小明")

    # 测试用例
    def test02_weiwei(self):
        print("测试微微")

# 测试用例
    def test10_xiaohongi(self):
        print("测试小红")

if __name__ =='__main__':
    suite = unittest.TestSuite()
    testcase = unittest.defaultTestLoader.discover(start_dir=os.getcwd(),pattern='*.py')
    suite.addTests(testcase)
    unittest.main(defaultTest='suite')
    #unittest.TextTestRunner().run(suite)两个调用方法结果相同没有区别

1.命令行运行方式:python -m unittest -v ecshop_login.EcshopLogin  -k *_weiwei   
python -m        以脚本的方式去运行一个门模块

python -v        --version 意思是更详细的输出结果

ecshop_login.EcshopLogin        模块名.类名.方法名

-k匹配模式:

       1.通配符:-k *_weiwei

        2.字符串:-k weiwei

适合集成jenkins的时候使用,所有的命令行的方式都叫非GUI的方式

postman:非GUI,newman

jmeter:jmeter的命令

2.使用unittest.main方法,以模块的方式运行

配置pycharm的环境,或者使用python 模块名.py方式运行

if __name__ =='__main__':
    print('__________')
    unittest.main()

读懂执行的结果:

.        成功

F        失败       self.assertTrue(0)

E        错误        raise Exception(”自定义异常”)

S        跳过        @unittest.skip("此用例不执行")

用例执行顺序:

按照ASCLL码的规则:【0-9 A-Z a-z】A=65, a=97

所以用例命名以01-09,在10-99

框架底层原理:

module='__main__',    测试用例所在的路劲 __main__表示当前模块
defaultTest=None,     待测用例的名称,默认是所有
例:defaultTest=["EcshopLogin.test01_xiaoming"]
argv=None,            接受外部的参数
testRunner=None,      测试运行器,默认TextTestRunner-文本格式
testLoader=loader.defaultTestLoader,     指定使用默认的测试用例加载器,
exit=True,            是否在测试完成之后结束python程序
verbosity=1,           类似-v 有0,1,2,
failfast=None,         失败的时候是否终止测试
catchbreak=None,        是否捕获复制
buffer=None,             是否捕获输出流
warnings=None, *,         是否显示警告信息
tb_locals=False

只运行部分用例使用什么测试套件:

3.单个用例:

if __name__ =='__main__':
    suite = unittest.TestSuite()
    suite.addTest(EcshopLogin("test01_xiaoming"))
    suite.addTest(EcshopLogin("test02_weiwei"))
    #unittest.main(defaultTest='suite')两个调用方法结果相同没有区别
    unittest.TextTestRunner().run(suite)

4.用例集:

if __name__ =='__main__':
    suite = unittest.TestSuite()
    testcase = [EcshopLogin("test01_xiaoming"),EcshopLogin("test10_xiaohongi")]
    suite.addTests(testcase) 
    unittest.main(defaultTest='suite')

5.文件下以.py结尾所有用例:

#print(os.getcwd())获取路径

if __name__ =='__main__':
    suite = unittest.TestSuite()
    testcase =unittest.defaultTestLoader.discover(start_dir=os.getcwd(),pattern='*.py')
    suite.addTests(testcase)
    unittest.main(defaultTest='suite')

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1019235.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号