Skip to main content

简单灵活的单元测试参数化。

项目描述

unittest_expander是一个 Python 库,它提供灵活且易于使用的工具来参数化您的单元测试,尤其是基于unittest.TestCase的那些。

该库与 Python 2.6、2.7、3.2、3.3 和 3.4 兼容,并且不依赖于外部包(仅使用 Python 标准库)。

作者

扬·卡利舍夫斯基(左)

执照

麻省理工学院许可证

主页

https://github.com/zuo/unittest_expander

文档

http://unittest-expander.readthedocs.org/

安装

安装库的最简单方法是执行(可能在 virtualenv中)命令:

pip install unittest_expander

(请注意,您需要网络访问才能这样做;如果您没有安装pip工具 - 请参阅: https ://pip.pypa.io/en/latest/installing.html )。

或者,您可以下载库源存档,解压,cd到解压后的目录并执行以下命令:

python setup.py install

(您可能需要具有管理员权限和/或网络访问权限,特别是如果您不在virtualenv中执行它)。

也可以在不安装的情况下使用该库:由于其代码包含在单个文件 ( unittest_expander.py ) 中,您只需将其复制到您的项目中即可。

使用示例

考虑以下丑陋的测试:

import unittest

class Test(unittest.TestCase):
    def test_sum(self):
        for iterable, expected in [
            ([], 0),
            ([0], 0),
            ([3], 3),
            ([1, 3, 1], 5),
            (set([1, 3]), 4),
            ({1:'a', 3:'b'}, 4),
        ]:
            self.assertEqual(sum(iterable), expected)

酷吗? 一点也不! 所以让我们改进它:

import unittest
from unittest_expander import expand, foreach

@expand
class Test(unittest.TestCase):
    @foreach(
        ([], 0),
        ([0], 0),
        ([3], 3),
        ([1, 3, 1], 5),
        (set([1, 3]), 4),
        ({1:'a', 3:'b'}, 4),
    )
    def test_sum(self, iterable, expected):
        self.assertEqual(sum(iterable), expected)

现在您有6 个不同的测试(正确隔离并始终报告为单独的测试),尽管它们共享相同的测试方法源。

您可能希望以更详细和更具描述性的方式执行相同操作:

import unittest
from unittest_expander import expand, foreach, param

@expand
class Test(unittest.TestCase):

    test_sum_params = [
        param([], expected=0).label('empty gives 0'),
        param([0], expected=0),
        param([3], expected=3),
        param([1, 3, 1], expected=5),
        param(set([1, 3]), expected=4),
        param({1:'a', 3:'b'}, expected=4).label('even dict is ok'),
    ]

    @foreach(test_sum_params)
    def test_sum(self, iterable, expected):
        self.assertEqual(sum(iterable), expected)

这只是unittest_expander 提供给您的一小部分可能性。

您可以从模块的实际文档中了解更多信息。

项目详情


下载文件

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

源分布

unittest_expander-0.3.1.tar.gz (31.2 kB 查看哈希

已上传 source