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

yizhihongxing

下面是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通过BF算法实现关键词匹配的方法

    以下是关于“Python通过BF算法实现关键词匹配的方法”的完整攻略: 简介 BF算法是一种简单的字符串匹配算法,它通过暴力枚举的方式在文本中查找关键词。本教程将介绍如何使用Python通过BF算法实现关键词匹配,并提供两个示例。 算法实现 BF算法是一种简单的字符串匹配算法,它通过暴力枚举的方式在文本中查找关键词。具体来说,我们将关键词从文本的第一个字符开…

    python 2023年5月14日
    00
  • Python GUI之tkinter窗口视窗教程大集合(推荐)

    这里给出一份对“PythonGUI之tkinter窗口视窗教程大集合(推荐)”文章的详细讲解,希望对你能有帮助。 1. 简介 本文主要介绍如何使用 Python 的图形用户界面库 tkinter 来创建窗口视窗。tkinter 是 Python 语言自带的标准 GUI 库,使用它可以快速实现一个简单的窗口程序。本文着重介绍 tkinker 的基本用法,包括窗…

    python 2023年5月14日
    00
  • Python爬虫框架Scrapy简介

    Python爬虫框架Scrapy简介 Scrapy是一款用Python编写的Python爬虫框架,它可以帮助我们快速、高效地抓取互联网上的数据,特别是那些合法且开放的数据。使用Scrapy不仅仅可以完成简单的数据抓取任务,它还具备自动化爬取、数据存储、数据处理等多个功能,让我们专注于核心业务逻辑开发,提高了开发效率和数据可靠性面。 Scrapy的主要特点 1…

    python 2023年5月14日
    00
  • 对python-3-print重定向输出的几种方法总结

    下面我将详细讲解“对python-3-print重定向输出的几种方法总结”的完整攻略。 介绍 Python中的print语句是一个非常常用的打印信息的方法,但是当我们需要将打印信息输出到不同的地方时,print函数的工作方式就不能满足我们的需求了。这时候需要对python-3-print进行重定向输出。下面,我将对几种实现Python3 stdout的重定向…

    python 2023年6月3日
    00
  • python3实现弹弹球小游戏

    下面是详细讲解“python3实现弹弹球小游戏”的完整攻略。 1. 简介 弹弹球,也叫做弹球、弹珠台等,是一种非常流行的游戏。玩家通过控制弹弹球的运动,在一个有障碍物的区域内反复弹跳,从而得到分数和奖励。 本篇攻略将使用Python3编写一个简单的弹弹球小游戏,通过学习这个小游戏的实现过程,您可以了解到一些Python3的基础知识和语法特性,同时也能够初步掌…

    python 2023年6月13日
    00
  • 如何在scrapy中捕获并处理各种异常

    Scrapy框架是一个爬虫框架,通过异步、并发的方式高效地运行爬虫程序。在爬取网站过程中,可能会遇到不同类型的异常,例如网络连接中断、http状态码错误和解析异常等,这些异常如果不及时处理,会导致爬虫程序中断或者无法正常工作。因此,Scrapy框架提供了一系列的异常处理方式,帮助用户处理各种异常。 捕获并处理异常 在Scrapy框架中,捕获和处理异常主要有如…

    python 2023年5月13日
    00
  • python发送json参数的实例代码

    在Python中,我们可以使用多种库和工具来发送JSON参数,例如requests、urllib、http.client等。本文将详细讲解如何使用Python发送JSON参数的实例代码,包括使用requests和urllib两个示例。 使用requests发送JSON参数的示例 requests是一个Python HTTP库,可以用于发送HTTP请求和处理H…

    python 2023年5月15日
    00
  • python模块引入问题和解决方案

    Python模块引入问题和解决方案 在Python编程中,我们经常会使用import语句来引入模块。但是,在引入模块时,我们可能会遇到各种问题。本文将详细讲解Python模块引入问题解决方案,包括问题的原因、解决方法和两个示例。 问题原因 在Python模块引入过程中,可能会遇到以下问题: 模块不存在:我们引入的模块不存在,导致引入失败。 模块路径问题:我们…

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