已解决
Python基础学习016__UnitTest
来自网友在路上 172872提问 提问时间:2023-11-08 14:44:21阅读次数: 72
最佳答案 问答题库728位专家为你答疑解惑
# UnitTest是python自带的一个单元测试框架,不需要额外安装 # 也是自动化脚本执行框架,使用UnitTest来管理,运行多个框架 # 为什么使用:能够组织多个用例去执行.提供了丰富的断言方法,能够生成测试报告 # 核心要素: # Testcase:测试用例:这个测试用例是UnitTest的组成部分,不是手工和自动化中所说的用例(Test Case) # 每一个TestCase都是一个代码文件,这这个文件中书写真正的代码 # TestSuite:测试套件,用来管理,组装(打包)多个TestCase # TestRunner:测试执行:用来执行TestSuite # TestLoader:测试加载:对TestSuite功能的补充 # Fixture:测试夹具:书写在TestCase中的,是一种代码结构,在每个方法执行前后都会执行的内容. # 可以将用例的前置后置条件放在这里
# 学习UnitTest框架的TestCase书写
# 1.导包
import unittest# 2.自定义类继承UnitTest的TestCase类
class TestcaseDemo1(unittest.TestCase): # 在定义类时继承UnitTest的TestCase类# 3.书写要求:测试方法必须以test_开头def test_method1(self):print('方法1')def test_method2(self):print('方法2')
# 4.执行用例:
# 将光标放在类名后面运行,执行类中的所欲方法.
# 将光标放在方法名的后边运行,只执行当前的方法class TestcaseDemo2(unittest.TestCase):# 3.书写要求:测试方法必须以test_开头def test_method2_1(self):print('方法2-1')def test_method2_2(self):print('方法2-2')# 运行时找不到run unittest for的选项:之前这个文件在书写用例前以.py代码的形式运行过
# 解决方案1:新建一个文件,将代码复制进去即可
# 解决方法2:在pycharm中点击最上方一行(绿色的'运行','debug'按钮那一行,有的在三个点那里面,有的是文件名的一个下拉框,)
# 中的edit选项(有的叫做edit,有的叫做edit configurations...),
# 将运行异常的这个代码从Python这个分类里移除即可
# 学习UnitTest框架的TestCase书写
# 1.导包
import unittest# 2.自定义类继承UnitTest的TestCase类
class TestcaseDemo1_1(unittest.TestCase): # 在定义类时继承UnitTest的TestCase类# 3.书写要求:测试方法必须以test_开头def test_method1(self):print('方法1')def test_method2(self):print('方法2')
# 4.执行用例:
# 将光标放在类名后面运行,执行类中的所欲方法.
# 将光标放在方法名的后边运行,只执行当前的方法# 运行时找不到run unittest for的选项:之前这个文件在书写用例前以.py代码的形式运行过
# 解决方案1:新建一个文件,将代码复制进去即可
# 解决方法2:在pycharm中点击最上方一行(绿色的'运行','debug'按钮那一行,有的在三个点那里面,有的是文件名的一个下拉框,)
# 中的edit选项(有的叫做edit,有的叫做edit configurations...),
# 将运行异常的这个代码从Python这个分类里移除即可
# 学习UnitTest框架的TestCase书写
# 1.导包
import unittest# 2.自定义类继承UnitTest的TestCase类
class TestcaseDemo1_2(unittest.TestCase): # 在定义类时继承UnitTest的TestCase类# 3.书写要求:测试方法必须以test_开头def test_method1(self):print('方法1')def test_method2(self):print('方法2')
# 4.执行用例:
# 将光标放在类名后面运行,执行类中的所欲方法.
# 将光标放在方法名的后边运行,只执行当前的方法# 运行时找不到run unittest for的选项:之前这个文件在书写用例前以.py代码的形式运行过
# 解决方案1:新建一个文件,将代码复制进去即可
# 解决方法2:在pycharm中点击最上方一行(绿色的'运行','debug'按钮那一行,有的在三个点那里面,有的是文件名的一个下拉框,)
# 中的edit选项(有的叫做edit,有的叫做edit configurations...),
# 将运行异常的这个代码从Python这个分类里移除即可
"""
学习TestSuite和TestRunner
"""
# 1.导包
import unittestfrom TestCase.hpp_TestCase import TestcaseDemo1, TestcaseDemo2
from TestCase.hpp_TestCase1 import TestcaseDemo1_1
from TestCase.hpp_TestCase2 import TestcaseDemo1_2# 2.实例化套件对象
suite = unittest.TestSuite()
# 3.使用套件对象添加用例方法
# 3.1suite.addTest(测试类名('方法名'),名称直接去复制,不要手写
suite.addTest(TestcaseDemo1('test_method1'))
suite.addTest(TestcaseDemo1_1('test_method1'))
suite.addTest(TestcaseDemo2('test_method2_1'))
# 3.2添加一个测试类中的所有方法:suite.addTest(unittest.makeSuite(测试类名))
# makeSuite即将废弃,所以有横线提示
suite.addTest(unittest.makeSuite(TestcaseDemo1_2))
# 4.实例化运行对象
runner = unittest.TextTestRunner() # 框架固定写法
# 5.使用运行对象去执行套件对象:运行对象runner,调用run方法,参数是套件对象suite
runner.run(suite)
# 什么情况下用TestLoader:TestCase有很多,使用一行代码加载所有TestCase
# 1.导包
import unittest# 2.实例化测试加载对象,并添加用例,加载完成后得到的是suite对象
# 在一个项目里,测试用例通常放在一个目录里unittest.TestLoader().discover(用例所在的路径(相对),用例代码文件名使用*通配符)
# suite = unittest.TestLoader().discover('.', 'hpp_TestCase*')
# 使用默认的加载对象并加载用例
suite = unittest.defaultTestLoader.discover('TestCase', 'hpp_TestCase*')
# 3.运行对象执行套件对象
# runner = unittest.TextTestRunner()
# runner.run(suite)
unittest.TextTestRunner().run(suite)
# 在某些特定情况下会自动执行的一种代码结构
# 方法级别:用例代码执行前后都会调用的结构
# 方法执行之前:def setup(self):在每个测试方法执行之前都会执行
# 方法执行之后:def teardown(self):每个测试方法执行之后都会执行
# --------------------------------------------------
# 类级别:在每个测试类中所有方法执行前后都会自动调用,在整个类中只会执行一次
# 类级别的Fixture方法,是一个类方法
# 类中所有方法之前
"""
@classmethod
def setupClass(cls):pass
"""
# 类中所有方法之后
"""
@classmethod
def teardownClass(cls):pass
"""
# ------------------------------------------------------------------
# 模块级别(了解):在每个代码文件执行前后执行的代码结构,写在类外边,直接定义函数即可
# 代码文件之前:def setupModule()
# 代码文件之后: def teardownModule()
# ----------------------------------------------------------------
# 方法级别和类级别的Fixture方法,不一定非要都前后都有,根据需求写就可以
# ---------------------------------------------------------------
import unittestclass TestLogin(unittest.TestCase):@classmethoddef setUpClass(cls):print("打开浏览器")@classmethoddef tearDownClass(cls):print('关闭浏览器')def setUp(self):print("测试前输入网址")def tearDown(self):print("测试后关闭当前页")def test_1(self):print('测试数据1')def test_2(self):print('测试数据2')
查看全文
99%的人还看了
相似问题
- Kotlin学习——kt里的集合,Map的各种方法之String篇
- Office文件在线预览大全-Word文档在线预览的实现方法-OFD文档在线预览-WPS文件在线预览
- composer切换全局镜像源的方法
- Python通过selenium调用IE11浏览器报错解决方法
- 测试用例的设计方法(全):正交实验设计方法|功能图分析方法|场景设计方发
- Java8新特性 ----- Lambda表达式和方法引用/构造器引用详解
- C#中抽象类、抽象方法和接口暨内联临时变量的精彩表达
- ChatGLM2 大模型微调过程中遇到的一些坑及解决方法(更新中)
- 类方法,静态方法和实例方法的区别及应用场景
- 【链表的说明、方法---顺序表与链表的区别】
猜你感兴趣
版权申明
本文"Python基础学习016__UnitTest":http://eshow365.cn/6-35411-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: Oracle中给表赋予权限
- 下一篇: ARMday02(汇编语法、汇编指令)