python单元测试之unittest框架

python单元测试之unittest框架

一、什么是单元测试

单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。

比如对于函数abs(),我们可以编写的测试用例为:

(1)输入正数,比如1、1.2、0.99,期待返回值与输入相同

(2)输入复数,比如-1、-1.2、-0.99,期待返回值与输入相反

(3)输入0,期待返回0

(4)输入非数值类型,比如None、[]、{}、期待抛出TypeError

把上面这些测试用例放到一个测试模块里,就是一个完整的单元测试

我们先写一个需要测试的类:

import unittest 

class MathFunc:  

  def __init__(self,a,b):

    self.a = a

    self.b = b 

  def add(self):

    return self.a + self.b

  def multi(self):

    return self.a * self.b

二、unittest工作原理

unittest中最核心的四部分是:TestCase,TestSuite,TestRunner,TestFixture

再说这几个类之前,我们先来回顾一下自动化测试的步骤:

  1. 编写用例 TestCase
  2. 执行用例 TestSuite存储用例 TestLoader 加载用例
  3. 对比结果 期望结果 判定是否通过 assert
  4. 出具测试报告 TextTestRunner

class TestMathMulti(unittest.TestCase):

  # 一个用例就是一个函数 不能传参数 只有一个实例self

  # 所有用例都是test开头 否则unittest无法识别

  def test_Multi_positive(self):

    #测试两个正数相加

    res = MathFunc(1,2).multi()

    print(res)

  def test_Multi_zero(self):

    # 测试两个0相加

    res = MathFunc(0,0).multi()

    print(res)

  def test_Multi_negative(self):

    #测试两个负数相加

    res = MathFunc(-1,-2).multi()

     print(res)

if __name__ == ‘__main__‘:

  unittest.main()

下面我们一条一条去执行:

import unittest 

from Prepares.class_01 import TestMathFunc

from HTMLTestRunner import HTMLTestRunner

# A class whose instances are single test cases.

# 这个类的实例是一个单独的用例

suite = unittest.TestSuite() # 存储用例

suite.addTest(TestMathFunc("test_add_positive"))

# 执行

runner =unittest.TextTestRunner() runner.run(suite)

第二种方法:加载全部用例

# suite.addTest(loader.loadTestsFromTestCase(TestMathFunc)) 

from Prepares import class_01

loader = unittest.TestLoader()

suite.addTest(loader.loadTestsFromModule(class_01))

生成测试报告:

with open(‘UnittestTextReport.txt‘, ‘a‘) as f:

  runner = unittest.TextTestRunner(stream=f, verbosity=2)

  runner.run(suite)

生成HTML版的测试报告:

with open(‘HTMLReport.html‘, ‘wb‘) as f:

  runner = HTMLTestRunner(stream=f,

              title=‘MathFunc Test Report‘,

              description=‘generated by HTMLTestRunner.‘,

              verbosity=2 )

  runner.run(suite)

原文地址:https://www.cnblogs.com/caixinxiong/p/12345367.html

时间: 2024-11-06 03:55:45

python单元测试之unittest框架的相关文章

python单元测试之unittest框架使用总结

一.什么是单元测试 单元测试是用来对一个模块.一个函数或者一个类来进行正确性检验的测试工作. 比如对于函数abs(),我们可以编写的测试用例为: (1)输入正数,比如1.1.2.0.99,期待返回值与输入相同 (2)输入复数,比如-1.-1.2.-0.99,期待返回值与输入相反 (3)输入0,期待返回0 (4)输入非数值类型,比如None.[].{}.期待抛出TypeError 把上面这些测试用例放到一个测试模块里,就是一个完整的单元测试 二.unittest工作原理 unittest中最核心的

Python单元测试之unittest

摘抄自: Python单元测试——深入理解unittest Python3 — unittest框架的使用 一.基础概念 unittest官方文档:https://docs.python.org/3.5/library/unittest.html TestCase:一个TestCase的实例就是一个测试用例.什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown).元测试(unit test)的本质也就在这

python接口自动化--unittest框架+HTMLTestRunner

Unitest是python里面的单元测试框架,方便组建测试用例,执行用例,并生成测试报告 注意: 测试类,继承单元测试unitest.TestCase这个类 测试方法(用例)必须以test开头 测试类就是多个用例的一个集合,相当于是测试用例的一个模块 1 import unittest 2 3 class TestCase(unittest.TestCase): 4 5 def testPlus(self): 6 a = 2 7 b = 3 8 c = a + b 9 self.assertE

python接口自动化测试 - unittest框架基本使用

unittest简单介绍 单元测试框架 还可以适用WEB自动化测试用例的开发与执行 提供丰富的断言方法 官方文档:https://docs.python.org/zh-cn/3/library/unittest.html unittest基础使用 1 # 导入unittest模块 2 import unittest 3 4 5 # 创建单元测试类,继承unittest.TestCase 6 class testCase(unittest.TestCase): 7 8 def setUp(self

python接口自动化测试 - unittest框架suite、runner详细使用

test suite 测试套件,理解成测试用例集 一系列的测试用例,或测试套件,理解成测试用例的集合和测试套件的集合 当运行测试套件时,则运行里面添加的所有测试用例 test runner 测试运行器 用于执行和输出结果的组件 test suite.test runner基础使用 单元测试类 1 # 创建单元测试类,继承unittest.TestCase 2 class testCase(unittest.TestCase): 3 4 # 测试case 5 def test_01(self):

Python 下的unittest测试框架

unittest测试框架,直接上图吧: data:数据:主要格式为CSV:读取方式:csv.reade: public:封装的模块:通用的模块单独封装,所需参数设置为变量: testcase:测试用例:使用unittest框架编写测试用例: report:测试报告:保存测试报告,调用封装好的runcases.py,其中加入时间和HTMLTestRunner生成的带时间的测试报告; run_tests.py:执行测试用例:调用封装好的runcases.py执行用例: mail:发送邮件:封装好发送

selenium + python自动化测试unittest框架学习(二)

1.unittest单元测试框架文件结构 unittest是python单元测试框架之一,unittest测试框架的主要文件结构: File >report >all_case.py >test_case >__init__.py >test_case1..... >public >__init__.py >login.py >loginout.py test_case文件夹主要存放测试用例,且测试用例命名以test_开头 public文件夹是test

selenium + python自动化测试unittest框架学习(一)selenium原理及应用

unittest框架的学习得益于虫师的<selenium+python自动化实践>这一书,该书讲得很详细,大家可以去看下,我也只学到一点点用于工作中,闲暇时记录下自己所学才能更加印象深刻.unittest框架学习需要掌握以下知识点: (1)Selenium原理及工具使用 (2)webdriver元素定位,id,name,class name,css seletor,xpath (3)python语言基础,模块,参数化,语言,装饰器 (4)unittest框架认识及学习:模块化,断言,参数化,数

Selenium2+python自动化30-引入unittest框架【转载】

本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/unittest/ from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support.ui import Selectfrom selenium.co