跳转到主要内容

Python的unittest模块的参数化测试

项目描述

https://secure.travis-ci.org/msabramo/python_unittest_parameterized_test_case.png?branch=master

Python的unittest模块的参数化测试

这受到了py.test中的参数化测试功能的启发。我曾使用py.test进行这一特定测试,但我的同事对使用py.test有所保留,我真正需要的是参数化测试,所以我通过一些元类黑客技巧迅速完成了这个。

示例用法

from parameterizedtestcase import ParameterizedTestCase

class MyTests(ParameterizedTestCase):
    @ParameterizedTestCase.parameterize(
        ("input", "expected_output"),
        [
            ("2+4", 6),
            ("3+5", 8),
            ("6*9", 54),
        ]
    )
    def test_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版本

  • Python 2.5

  • Python 2.6

  • Python 2.7

  • Python 3.1

  • Python 3.2

  • Python 3.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 :)

您还可以检查最新的Travis CI结果,但Travis不构建上述所有平台。

问题

将您的错误报告和功能请求发送到https://github.com/msabramo/python_unittest_parameterized_test_case/issues

项目详情


下载文件

下载适用于您平台的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。

源分发

parameterizedtestcase-0.1.0.tar.gz (4.9 kB 查看哈希值)

上传时间

由以下提供支持