ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

自动化学习笔记一:unittest

2021-09-12 18:31:25  阅读:171  来源: 互联网

标签:__ 覆盖 unittest 单元测试 笔记 自动化 test suite


unittest测试框架

单元测试概述

什么是单元测试:单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的,很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为

单元测试什么时候测试:程序进行代码编写的过程中

单元测试由谁负责:一般由开发负责

单元测试需要注意

明确输入和输出:单元测试的时候一个大前提就是需要清除的知道,自己要测试的程序块所预期的输入和输出,然后根据这个预期和程序员逻辑来书写case。

照着需求设计case而不是照着程序设计case:这里的预期结果一定要针对需求/设计的逻辑去写,而不是针对程序的实现去些,否则单侧就失去了意义,照着错误的实现设计出的case页很可能是错的。

单元测试框架

unittest、pytest、nose、mock、......

单元测试覆盖率

代码覆盖率也是被用于度量自动化测试和手工测试测试是否全面的指标之一,应用覆盖率的思想增强测试用例的设计

单元测试覆盖类型

语句覆盖:覆盖所有语句

条件覆盖:对每一个表达式(语句)的true和false的覆盖

判断覆盖:对每一条判断进行整个判断条件的true和false覆盖

路径覆盖:覆盖所有可能执行的路劲

语法

class

1.Test 开头进行命名

2.需要继承 unit test.TestCase

def

1.test_开头进行命名

setUp

1.用例运行前执行

tearDown

  2.用例运行后执行

用例执行方法

一,通过以下方法来调用测试方法
if __name__=="__main__":
    unittest.main()
二,加入容器中执行
if __name__ == "__main__":
    suite=unittest.TestSuite()
    suite.addTest(TestMethod("test_01"))
    suite.addTest(TestMethod("test_02"))
    unittest.TextTestRunner().run(suite)
通过pycharmide使用该方法时,有可能只添加一条方法但是执行的时候执行所有测试方法。换成命令行执行可以解决该问题
三,同时测试多个类
if __name__ == "__main__":
    suite1=unittest.TestLoader(),loadTestsFromTestCase(TestCase1)
    suite2=unittest.TestLoader(),loadTestsFromTestCase(TestCase1)
    suit=unittest.TestSuite([suite1,suite2])
    unittest.TextTestRunner(verbosity=2).run(suite)
四,匹配某个目录下所有以test开头的py文件,执行这些文件下的所有测试用例 
if __name__ == "__main__":
    test_dir = "./test_case"
    discover = unittest.defaultTestLoader.discover(test_dir, pattern="test*.py")
    unittest.TextTestRunner(verbosity=2).run(discover)

discover:可以一次调用多个脚本

test_dir:被测试脚本路径

pattern:脚本名称匹配规则

断言

标签:__,覆盖,unittest,单元测试,笔记,自动化,test,suite
来源: https://www.cnblogs.com/planttrees/p/15259486.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有