找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 198|回复: 0

[Python基础] 单元测试

[复制链接]

5

主题

0

回帖

72

积分

管理员

积分
72
发表于 2025-6-6 20:08 | 显示全部楼层 |阅读模式
元测是测什么单元试的质)
   单测试类里的方是否正确
何进单元
   方法-->参-->观结果-->对期结果实际果是一致一致PASS,一致Faild
元测--试用(unittest是Python自的用单元试的架)
   使Python自带unittest架里门用写测用例TestCase来写试用
   1测试例的法:
        (1)每条测用例是一方法def test_用例述():)
        (2)必以“test”开(强推荐使用“test_”头)
LTXIT-20250609113954.jpg
        (3)若试用不以test”头,Python无法常识其为试用,控台展的执结果不一
LTXIT-20250609114128.jpg
        (4)若个模(文)中多条试用,讲标放某一测试例上然后击鼠右键选择行时是仅行当的这条用
LTXIT-20250609114446.jpg
        (5)若个测类中多条试用,讲标放测试类名置,后单鼠标键选运行会执当前试类所有测试例(几条执行条)若放空白置单鼠标键选运行会执当前块(件)所有测试例(几条执行条)
LTXIT-20250609114951.jpg
   2测试例的行顺
        若个模(文)中多条试用,并执行有测用例,测用例执行序是循ASCII编码大小则,码越,执优先越高(常ASCII的大规则0~9<A~Z<a~z具体见:ASCII编详解
元测--
        (1)unittest框架TestCase中常的断方法
                assertEqual(self, first, second, msg=None) --判断个参相等first == second
                assertNotEqual(self, first, second, msg=None) --判断个参不相:first= second
                assertIn(self, member, container, msg=None)   --判是字串是包含member in container
                assertNotIn(self, member, container, msg=None)   --判是字串是不包:member not in container
                assertTrue(self, expr, msg=None)   --断是为真expr is True
                assertFalse(self, expr, msg=None) --判断否为:expr is False
                assertIsNone(self, obj, msg=None) --判断否为 None:obj is None
                assertIsNotNone(self, obj, msg=None) --判断否不 Noneobj is not None
        (2)在unittest框的TestCase类中一个assertEqual方,可用来为测用例断言判断际结与预结果否一
LTXIT-20250609121047.jpg
        (3)断与异处理合使
LTXIT-20250609121827.jpg
                言和常处按照图的法进结合使用,有一问题,原不通的测用例虽然控制有打断言误信,但终Python还判定条测用例过,此与际结不符
                使用raise将言结抛出,即完美决断和异处理合使时,Python断原不通的测用例通过问题
LTXIT-20250609123009.jpg
元测--setup函和teardown函数初始测试境和理测环境----unittest框架TestCase中已在该数(法)
        (1)执每一测试例的候,会执setup数和teardown函
        (2)每条测用例行前执行setup函;每条测用例行结会执teardown数;
LTXIT-20250609124419.jpg
                每条试用时都动传参数
LTXIT-20250609125124.jpg
元测--储加测试例(TestSuite
   使Python自带unittest架里门用加载试用的TestSuite类加载试用
   测试合套:suite = unittest.TestSuite()--->TestSuite()TestSuite类的个对(即suite一个象)
   要使TestSuite就要建一TestSuite的对,然添加试用的对进来
   TestSuite类承了BaseTestSuite类,BaseTestSuite类有一addTest函
LTXIT-20250609130025.jpg
        (1)添测试例方一(过测类对添加单次加单测试例)
                TestSuite如要加测试例,能添测试的对
                TestLoninTestLonin()TestLoninTestLoninTestCaseTestCase
                方法suite.addTest(试类类名('测用例法名'))
LTXIT-20250609132610.jpg
        (2)添测试例方二(过测类批添加试类所有测试例)
                方法suite.addTest(loader.loadTestsFromTestCase(测类类))
LTXIT-20250609131409.jpg
                测试批量载测用例,Python会动在试类找测用例数(数名test开的函),测试中存以非test开头测试例函名,Python不认这是条测用例并且予加执行所以须确测试中的有的试用的方名都以test头。
        (3)添测试例方三(过模(文)批添加模块文件中所的测用例
                方法suite.addTest(loader.loadTestsFromModule(块名))
LTXIT-20250609133529.jpg
                      (1)通模块文件批量载测用例前,须要导入模块文件
                      (2)通模块文件批量载测用例,Python会动在块(件)找测用例数(数名test开的函),模块文件中存以非test开头测试例函名,Python不认这是条测用例并且予加执行所以须确模块文件中的有的试用的方名都以test头。
元测--行测用例TextTestRunner
   使Python自带unittest架里门用执行试用的TextTestRunner类来行测用例
   加到测套件执行试用时,试结中的.代表PASS;F代表Fail;E表Error(有码或据错
LTXIT-20250609134026.jpg
元测--成测报告
   (1)通Python自带TextTestRunner的函生成---点丑
           先看下TextTestRunner类初始函数
LTXIT-20250609134303.jpg
           runner = unittest.TextTestRunner(stream=None, descriptions=True, verbosity=1)
           TextTestRunner类中stream表示例结写到里(认在制台示)
           TextTestRunner类中descriptions表示
           TextTestRunner类中verbosity表示细程(0:只展失败测试例;1:在0的基上+执行多少测试例,过(.表示通过)条,失败(F表示败)几条;2:展所有试用的执结果最详))
           TextTestRunner类verbosity的值置为0
LTXIT-20250609135913.jpg
           已经行完而且成了TestSuite.txt文件现在看文里是
LTXIT-20250609140149.jpg
           TextTestRunner类verbosity的值置为1
LTXIT-20250609140829.jpg
           跟上的verbosity = 0不多只是0改了1已,点看文件什么
LTXIT-20250609140928.jpg
           TextTestRunner类verbosity的值置为2
LTXIT-20250609144609.jpg
           跟上的verbosity = 0verbosity = 1差多,点还看下件有么不
LTXIT-20250609144653.jpg
           虽然上面verbosity = 0和verbosity = 1的结好看丢丢但还很low又有~
   (2)通网上载HTMLTestRunnerNew.py文件成---网版的好看
           第步:下载HTMLTestRunnerNew.py件放Python安装录的lib录(如:C:\Users\Administrator\AppData\Local\Programs\Python\Python38\Lib)
           步:可以快的使用了使用前要导入
           先来看HTMLTestRunner类的始化
LTXIT-20250609145903.jpg
           runner = HTMLTestRunnerNew.HTMLTestRunner(stream=sys.stdout,verbosity=2,title=None,description=None,tester=None)
           初始函数各参的意
                  stream:果写哪里
                  verbosity:式(细程,2最详的)
                  title:测报告标题
                  description:测报告描述
                  tester:试者
           我们过HTMLTestRunner生成试报
LTXIT-20250609151610.jpg
           是html式的件,们需通过览器
           :在择浏器打html格的测报告,需注意有当备中经安了相的浏器时可以择该览器开(如:电脑已经安装好Chrome浏览器,此才可选择使用Chrome浏器打),果不道当设备装了种浏器,者当设备装的览器在这面,选择过默默认览器Default)开即可。
LTXIT-20250609151729.jpg
           看看html格式测试告是样的
LTXIT-20250609151855.jpg

评分

参与人数 9ITB +450 贡献值 +45 收起 理由
SunShine + 50 + 5 原创性突出
云起星辰 + 50 + 5 主题明确聚焦
Monkey + 50 + 5 技术选型恰当
少年・赤子心 + 50 + 5 技术敏感度高
清风慕竹 + 50 + 5 知识掌握扎实
追光・赤子心 + 50 + 5 逻辑条理清晰
TestUser + 50 + 5 内容专业易懂
Love + 50 + 5 原创性突出
Happy + 50 + 5 功能实现完整

查看全部评分

Archiver|手机版|小黑屋|LTXIT家园 ( 鄂ICP备2025089526号|鄂公网安备42110002000175号 )

GMT+8, 2025-8-3 00:57 , Processed in 0.162074 second(s), 27 queries .

Powered by LTXIT家园 X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表