问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python unittest单元测试框架中,如何对一个testcase参数化,具体如何实 ...

发布网友 发布时间:2022-05-06 12:54

我来回答

2个回答

热心网友 时间:2022-04-18 07:23

#首先pyunit不像junit一样支持参数化测试。。。不过不是不能实现,只是pyunit的作者想让#这个东西变得尽量简单。所以不去实现。当然这个pyhon语言足够动态,你可以自己去实现

#外部输入参数测试。

import unittest
class ParametrizedTestCase(unittest.TestCase):
    """ TestCase classes that want to be parametrized should
        inherit from this class.
    """
    def __init__(self, methodName='runTest', param=None):
        super(ParametrizedTestCase, self).__init__(methodName)
        self.param = param
    @staticmethod
    def parametrize(testcase_klass, param=None):
        """ Create a suite containing all tests taken from the given
            subclass, passing them the parameter 'param'.
        """
        testloader = unittest.TestLoader()
        testnames = testloader.getTestCaseNames(testcase_klass)
        suite = unittest.TestSuite()
        for name in testnames:
            suite.addTest(testcase_klass(name, param=param))
        return suite


#####################################################

##用法-testcase
class TestOne(ParametrizedTestCase):
    def test_something(self):
        print 'param =', self.param
        self.assertEqual(1, 1)

    def test_something_else(self):
        self.assertEqual(2, 2)
        
##用法-测试
suite = unittest.TestSuite()
suite.addTest(ParametrizedTestCase.parametrize(TestOne, param=42))
suite.addTest(ParametrizedTestCase.parametrize(TestOne, param=13))
unittest.TextTestRunner(verbosity=2).run(suite)

#结果
test_something (__main__.TestOne) ... param = 42
ok
test_something_else (__main__.TestOne) ... ok
test_something (__main__.TestOne) ... param = 13
ok
test_something_else (__main__.TestOne) ... ok

----------------------------------------------------------------------
Ran 4 tests in 0.000s

OK

 当然最好的方法就是用别人写的东西。。。

https://github.com/taykey/nose-ittr

这个拿去,不谢

热心网友 时间:2022-04-18 08:41

__init 。这个题我是想测试一下的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
信息系统集成资质几级最高 计算机信息系统集成企业资质等级评定条件计算机信息系统集成企业资质等 ... 计算机信息系统集成企业资质等级评定条件实施细则一级资质 win10电脑密码错误win10开机密码错误 windows怎么更换密码错误 电脑没设置密码老是显示密码不正确电脑密码一直显示输入不正确 我把苹果手机系统 。 一更新 。 卡着了 。 然后就这样了 。 这出现... 我iphone想更新到9,是直接在手机按的更新,但是中途变成了这样 为什么有时早上4点多觉胸一下感觉很累的像给人吓一跳似 睡觉醒来时觉得胸部难受有点累是怎么回事 显卡显存用Video Memory Stress Test 检测出的结果是什么意思啊 VC里,RC文件中的资源大小是以什么为单位的 VC++6.0中怎么建立RC文件,说步骤,它是做什么用的 徐工吊车指灯一个圆圈什么意思? C++里的==是什么意思 求批处理,删除文件目录中(包含子目录),所有文件名删除前5位。谢谢了。 C++中如何定义超长数组 在c++中如何将数组类型和长度作为参数传入 韩语topik考试有用么 韩语翻译需要参加什么考试? 关于韩语等级考试(TOPIK)的书籍 oktest韩语职业能力考试和topik哪个好考? 百度Apollo自动驾驶出租车正式登陆北京 2010年南京市中考语文试卷 自动驾驶车将驶入高速公路 百度Apollo获批高速场景测试资质 初中语文综合性学习(简单) 苹果手机哪个小,那个薄我要看图片 新出的小苹果手机是杂牌吗? 南京初中语文多少分算优秀 关于联想台式机或笔记本启动顺序的问题 C++程序优化 C++如何定义类数组的问题~ 求路由器重置的详细步骤,越详细越好。 路由器怎么重置设置视频演示教程 路由器密码忘记了怎么办 怎么安装教程视频 拉法联科路由器r190联接宽带怎么设置视频教程 2013outlook 网页版邮件都没有了 outlook2013怎么设置,不影响网页版本 outlook 2013设置问题 pop不通求解 C++中如何定义某个数组的引用? 用U盘重置电脑密码怎么输入新密码了过后发生错误? 电脑用优盘重置密码的时候会出现此向导试图为此用户账户设置密码时发生了一个错误 用U盘重置电脑密码怎么输入新密码了过后发生错误 U盘密码错错误怎么恢复 用U盘设置密码重置盘,提示发生了一个错误,怎么解决啊。 win7用u盘更改密码,提示出现错误 台电u盘密码设置后一直说密码错误怎么回事? U盘设置密码 忘记了怎么办? 神武无常能用到多少级 第一只6技能无常,该怎么打书吃元宵啊大佬们?