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

unittest_expander的Python项目详细描述


^ {EM1}$UnTestExpExpRead 是一个Python库,提供灵活和 易于使用的工具来参数化您的单元测试,特别是那些 基于unittest.testcase

该库与Python2.6、2.7、3.2、3.3和3.4兼容,并且 不依赖于外部包(仅使用python标准 图书馆)。

Author:Jan Kaliszewski (zuo)
License:MIT License
Home Page:https://github.com/zuo/unittest_expander
Documentation:http://unittest-expander.readthedocs.org/

安装

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

pip install unittest_expander

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

或者,您可以download库源文件,解包 它,cd到解包目录并执行以下命令 命令:

python setup.py install

(您可能需要具有管理员权限和/或网络访问权限, 尤其是在virtualenv中执行它not

也可以在不安装库的情况下使用库: 代码包含在单个文件(unittest_expander.py)中,您可以 把它复制到你的项目中。

用法示例

考虑下面的aucky测试:

importunittestclassTest(unittest.TestCase):deftest_sum(self):foriterable,expectedin[([],0),([0],0),([3],3),([1,3,1],5),(set([1,3]),4),({1:'a',3:'b'},4),]:self.assertEqual(sum(iterable),expected)

很酷吗?一点也不!让我们改进一下:

importunittestfromunittest_expanderimportexpand,foreach@expandclassTest(unittest.TestCase):@foreach(([],0),([0],0),([3],3),([1,3,1],5),(set([1,3]),4),({1:'a',3:'b'},4),)deftest_sum(self,iterable,expected):self.assertEqual(sum(iterable),expected)

现在您有了6个不同的测试(正确地isolated,并且 总是报告为单独的测试,尽管它们共享相同的测试 测试方法来源。

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

importunittestfromunittest_expanderimportexpand,foreach,param@expandclassTest(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)deftest_sum(self,iterable,expected):self.assertEqual(sum(iterable),expected)

这只是unittest_expander 提供给你。

您可以从实际的documentation of the module中了解更多信息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaGCP:一个VM可以位于具有相同地址的不同网络上吗?   java查找安卓中第一个数组的第二个数组中存在的元素的索引   java摄像头活动不工作,设置参数失败   用于python的Base64转换的Java等效代码   为什么JPA/Hibernate在我尝试运行@Query时抛出“java.lang.NegativeArraySizeException:1”?   如何在ubuntu for java的终端上设置路径?   java为什么这两个IP不同?   java JPA:如何将本机查询结果集转换为POJO类集合   java如何在|(12)|(23)中用数字拆分字符串   异常处理如何让程序在达到Java目标后停止运行   java如何不添加以特定字符开头的元素   java如何通过字符串获得swing按钮名称?   java如何在响应不成功时读取改装中的错误体?   java*更新*现在我的程序可以编译但不运行了?