python的unittest单元测试框架改装传参
来源:互联网 发布:仿今日头条网站源码 编辑:程序博客网 时间:2024/04/30 03:19
python主要讲究简洁简单使用,所以它不像junit一样支持参数化测试,需要改装一下也可以传参。直接上代码实例
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
或者可以使用meta类来 解决这个问题
- import unittest
- l = [["foo", "a", "a",], ["bar", "a", "a"], ["lee", "b", "b"]]
- class TestSequenceMeta(type):
- def __new__(mcs, name, bases, dict):
- def gen_test(a, b):
- def test(self):
- self.assertEqual(a, b)
- return test
- for tname, a, b in l:
- test_name = "test_%s" % tname
- dict[test_name] = gen_test(a,b)
- return type.__new__(mcs, name, bases, dict)
- class TestSequence(unittest.TestCase):
- __metaclass__ = TestSequenceMeta
- if __name__ == '__main__':
- unittest.main()
0 0
- python的unittest单元测试框架改装传参
- Python单元测试框架unittest
- Python单元测试框架-unittest
- Python unittest单元测试框架
- python的单元测试unittest
- B001:python单元测试框架unittest
- python单元测试框架unittest简介
- Python单元测试框架unittest简介
- Python 的单元测试框架Unittest之一(TestResult类分析)
- python的unittest单元测试框架断言整理汇总
- Python必会的单元测试框架 —— unittest
- [Good]Python必会的单元测试框架 —— unittest
- Python必会的单元测试框架 —— unittest
- Python单元测试框架unittest测试过程简介
- Python Unittest 自动化单元测试框架Demo
- Python:unittest单元测试框架(一)
- Python Unittest 自动化单元测试框架Demo
- Python单元测试框架unittest使用方法讲解
- HTML基础笔记1
- 装饰者设计模式
- android getIdentifier获取资源ID用法
- Android注解支持(Support Annotations)详解
- 【OSGI】实例讲解OSGI开发
- python的unittest单元测试框架改装传参
- C++中常量引用(const reference)
- android图表收益曲线-MPAndroidChart
- LeetCode(46): Permutations (C++)
- 图层控制权限
- 目前最完整的Windbg调试命令详解
- 图的表示方法C++实现
- Struts2 验证码图片实例
- 计算文本高度