Unittest-单元测试2

续接Unittest-单元测试的记录

六、TestCase用法

import unittest

class EcshopLogin(unittest.TestCase):
    #测试用例
    def test01_cs(self):
        print("测试")

1.使用unittest命令行的方式运行:

python -m unittest -v ecshop_login.EschopLogin

Python -m 以脚本的方式去运行一个模块

Unittest -v --verbose意思就是更详细的输出结果

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

-k匹配模式:

1.通配符:-k *_cs

2.字符串:-l cs

集成Jenkins的时候使用。为什么?所有命令行的方式都叫做非GUI的方式。

Postman:非GUI,newman

Jmeter:jmeter的命令

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

配置pycharm的环境或者使用python模块名.py

七、读懂执行的结果

. 成功

F 失败

E 错误

S 跳过

八、用例执行的顺序

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

九、框架底层原理

module='__main__', 		测试用例用例所在的路径 __main__表示当前模块
defaultTest=None, 		待测用例的名称,默认是所有
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

只运行部分用例使用testsuite:

if __name__ == '__main__':
    suite = unittest.TestSuite()
    suite.addTest(EcshopLogin("test01_cs01"))
    suite.addTest(EcshopLogin("test01_cs02"))
    unittest.main(defaultTest='suite')
    # unittest.TextTestRunner().run(suite)
if __name__ == '__main__':
    suite = unittest.TestSuite()
    testcases = [EcshopLogin("test01_cs01"),EcshopLogin("test01_cs011")]
    suite.addTests(testcases)
    unittest.main(defaultTest='suite')
if __name__ == '__main__':
    suite = unittest.TestSuite()
    testcases = unittest.defaultTestLoader.discover(start_dir=os.getcwd(),pattern='*.py')
    suite.addTests(testcases)
    unittest.main(defaultTest='suite')

十、TestFixture测试夹具,或者测试固件

框架的大纲或者说是架构

import unittest
class MyUnit(unittest.TestCase):
    @classmethod
    def setUpClass(cls) -> None:
        print("setUpClass:在每个类之前执行一次。如:创建数据库,生成日志对象")
    def setUp(self):
        print("setUp:测试前的准备工作,如:打开浏览器,加载网页")
    def tearDown(self):
        print("tearDown:测试用例之后的扫尾工作,如:关闭浏览器")
    @classmethod
    def tearDownClass(cls) -> None:
        print("tearDownClass:在每个类之后执行一次,如:关闭数据库连接,销毁日志对象")

SetUpModule 和tearDownModule可以放在方法外面执行

def setUpModule():
    print("模块级的夹具开始")

def tearDownModule():
    print("模块级的夹具结束")

今天的个人笔记就到这里!!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值