Python基于paramunittest模块实现excl参数化

下面是Python基于paramunittest模块实现excl参数化的详细攻略。

什么是paramunittest模块

paramunittest是一个Python的单元测试模块,可以实现对方法参数进行参数化自动测试。

安装paramunittest模块

在命令行执行下面的指令进行安装:

pip install paramunittest

实现excl参数化

第一步:创建测试用例的excl参数文件

创建一个excl参数文件,对测试参数进行统一管理。excl文件的格式可以使用.csv或.xlsx文件,简单起见,这里以.csv文件为例。

假设需要对一个计算两数之和的函数进行测试,那么我们可以创建一个参数文件test_data.csv,包含以下两行数据:

a,b,result
1,2,3
2,2,4

第二步:编写测试用例

通过继承paramunittest.TestCase类,实现单元测试用例,并在用例函数上添加@paramunittest.parametrized以实现参数化。

import paramunittest
import unittest
from mymodule import add  # 需要测试的函数

@paramunittest.parametrized(
    {"a": 1, "b": 2, "result": 3},
    {"a": 2, "b": 2, "result": 4}
)
class MyTestCase(unittest.TestCase):
    def setParameters(self, a, b, result):
        self.a = a
        self.b = b
        self.result = result

    def test_add(self):
        self.assertEqual(add(self.a, self.b), self.result)

第三步:链接参数文件和测试用例

在测试用例类上添加@paramunittest.parametrized装饰器,并在装饰器中传入数据源的文件名和Sheet名(或者None)。

@paramunittest.parametrized(
    *paramunittest.load_csv("test_data.csv")
)
class MyTestCase(unittest.TestCase):
    # ...

示例一

# test_data.csv文件内容如下:
# a,b,result
# 1,2,3
# 2,2,4

import paramunittest
import unittest
from mymodule import add

@paramunittest.parametrized(
    *paramunittest.load_csv("test_data.csv")
)
class TestAdd(unittest.TestCase):
    def setParameters(self, a, b, result):
        self.a = a
        self.b = b
        self.result = result

    def test_add(self):
        self.assertEqual(add(self.a, self.b), self.result)

示例二

# test_data.xlsx文件内容如下:
# Sheet1
# a  b  result
# 1  2  3
# 2  2  4

import paramunittest
import unittest
from mymodule import add

@paramunittest.parametrized(
    *paramunittest.load_excel("test_data.xlsx", "Sheet1")
)
class TestAdd(unittest.TestCase):
    def setParameters(self, a, b, result):
        self.a = a
        self.b = b
        self.result = result

    def test_add(self):
        self.assertEqual(add(self.a, self.b), self.result)

结尾

以上就是Python基于paramunittest模块实现excl参数化的攻略,希望对您有帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python基于paramunittest模块实现excl参数化 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 利用Python读取txt文档的方法讲解

    当我们需要处理txt文档的时候,Python可以为我们提供非常方便的读取方式,本文将详细讲解如何利用Python读取txt文档,并提供两个实例。 读取txt文档的方法 Python提供了open函数来打开txt文件,其有很多参数可选,最常见的参数有三个,分别为文件名、模式和编码。 file = open("filename.txt", m…

    python 2023年6月5日
    00
  • 利用Python破解摩斯密码

    下面是利用Python破解摩斯密码的完整攻略。 什么是摩斯密码 摩斯密码是一种可以将人类可以识别的字符转换成电信号的编码方式,通常用于维吉尼亚电报机的电信传输。它由光、声、电等信号组成,常用于间谍、军事通讯、自卫等领域。摩斯密码由一个点(.),一个横线(-)和一个字符间的间隔组成。 如下是字母A至Z的摩斯电码表: A .- H …. O — V ..…

    python 2023年5月13日
    00
  • Python爬取肯德基官网ajax的post请求实现过程

    Python爬取肯德基官网ajax的post请求实现过程 肯德基官网是一个常见的网站,我们可以使用Python来爬取它的数据。在爬取肯德基官网时,我们需要使用POST请求来获取数据。本文将详细讲解如何使用Python爬取肯德基官网的数据,并提供两个示例。 环境配置 在使用Python爬取肯德基官网时,我们需要安装requests库。可以使用pip命令来安装r…

    python 2023年5月15日
    00
  • Python实现疫情地图可视化

    以下是Python实现疫情地图可视化的完整攻略: 疫情地图可视化的介绍 疫情地图可视化是一种通过地图展现疫情数据的方式,它能够直观地表现病例分布情况,帮助人们更好地了解疫情发展的情况和趋势。 攻略步骤 步骤一:数据收集 要实现疫情地图可视化,首先需要采集相关的数据。可以通过网上搜索或者各大数据统计平台获取数据,比如国家卫健委发布的疫情通报和各地卫健委的官方网…

    python 2023年6月3日
    00
  • python实现简易五子棋游戏(控制台版)

    下面是详细的攻略: python实现简易五子棋游戏(控制台版) 本文将介绍如何通过Python语言实现一个简易的五子棋游戏,主要使用Python基础语法和标准库函数,适合初学者或想进一步熟悉Python语法的人。游戏使用控制台进行展示,不涉及图形界面。 思路与实现 初始化棋盘 棋盘的使用采用二维列表来实现,棋盘大小为15*15,每格状态用0、1、2表示,0为…

    python 2023年5月19日
    00
  • Python 十个字典用法使用技巧归纳

    Python 十个字典用法使用技巧归纳 字典(dictionary)是 Python 中非常常用的数据类型之一,它以键值对的形式存储数据,使得数据的访问和操作更加方便。在本文中,我们将介绍 Python 字典的十种使用技巧。 1. 创建字典 Python 字典可以使用花括号 {} 或者 dict() 函数来创建。 通过花括号创建字典 dict1 = {&qu…

    python 2023年5月13日
    00
  • python爬虫使用requests发送post请求示例详解

    以下是关于Python爬虫使用requests发送POST请求的攻略: Python爬虫使用requests发送POST请求 requests是一个流行的HTTP库,用于向Web服务器发送HTTP请求和接收响应。以下是Python爬虫使用requests发送POST请求的攻略: 发送POST请求 以下是使用requests库发送POST请求的示例: impo…

    python 2023年5月14日
    00
  • python实现的一个p2p文件传输实例

    下面就详细讲解一下如何使用Python实现一个P2P文件传输实例。本攻略将包括以下内容: 确定P2P文件传输的技术栈 搭建P2P文件传输环境 实现文件传输 1. 确定P2P文件传输的技术栈 在实现P2P文件传输之前,需要确定要使用的技术栈。在本实例中,我们将使用以下技术栈: Python 3.x Flask:用来构建Web服务器,提供文件下载服务 Boots…

    python 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部