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

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第三方库


热门话题
java Admob不使用webview   Java Wicket表单:序列化对象类“myClassName”时出错   java googledriveapi更新文件与我的帐户管理员   java简单框架未知xml标记解析   java如何使用主类和用户获取Spark应用程序ID   java如何更改自定义属性的值?   java有没有办法在jMock中找到未使用的期望值?   gradle运行任务的java文档?   java通过使用数组来存储文本文件的行,通过覆盖来删除文本文件中的行   用于表达式语言注入的java利用负载   java IDEStyle程序运行   java在运行时启用/禁用Springws   爪哇芦苇。formatNumber NullPointException   java为什么我的代码无法检测两个动态实体之间的碰撞?