python的unittest模块的参数化测试
parameterizedtestcase的Python项目详细描述
python的unittest模块的参数化测试
它的灵感来自于 py.test。我一直在用py.test测试 激发这一点的特殊测试,但我的同事 对py.test的使用有所保留,我真正需要的是 参数化测试,所以我用了一点元类 哈克瑞。
示例用法
fromparameterizedtestcaseimportParameterizedTestCaseclassMyTests(ParameterizedTestCase):@ParameterizedTestCase.parameterize(("input","expected_output"),[("2+4",6),("3+5",8),("6*9",54),])deftest_eval(self,input,expected_output):self.assertEqual(eval(input),expected_output)
运行此命令的结果:
~/dev/git-repos/python_unittest_parameterized_test_case$ python -m unittest -v tests test_eval_input_2+4_expected_output_6 (tests.MyTests) ... ok test_eval_input_3+5_expected_output_8 (tests.MyTests) ... ok test_eval_input_6*9_expected_output_54 (tests.MyTests) ... ok ---------------------------------------------------------------------- Ran 3 tests in 0.001s OK
支持的Python版本
- Python2.5
- Python2.6
- python 2.7版
- Python3.1
- python 3.2
- Python3.3
- Pypy 1.9
- Jython 2.5
或者说tox:
~/dev/git-repos/python_unittest_parameterized_test_case$ tox ... py25: commands succeeded py26: commands succeeded py27: commands succeeded py31: commands succeeded py32: commands succeeded py33: commands succeeded jython: commands succeeded pypy: commands succeeded congratulations :)
您也可以检查latest Travis CI results,但是 特拉维斯并没有建立以上所有的平台。