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

展开全部

#首先pyunit不像junit一样支持参数化测试。。。不过不是不能实e69da5e887aa62616964757a686964616f31333337613232现,只是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

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

这个拿去,不谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值