一个简单的类似rspec的测试框架。

ivoire的Python项目详细描述


Travis CI Build Status

ivoire是一个类似于RSpec的测试框架 Python。它的目的是将一些小构造以一种 不是压倒性的颠覆或反文化。

如果你没听说过rspec,它是一颗红宝石 BDD框架 它被广泛使用,其测试具有Xunit独有的风格。

安装

科特迪瓦位于PyPi上,可以安装 通过pip install ivoire(或通过您首选的安装方法)。

在这一点上,你应该认为科特迪瓦是试验性的,而且 可能有很多错误需要解决,所以请在遇到它们时将它们归档 那张issue tracker

一个小例子

要使用科特迪瓦编写规范,只需导入并使用ivoire.describe。你可以 然后使用包含的ivoiretest runner执行规范。

下面是一个规范的示例。

fromivoireimportdescribe,contextclassCalculator(object):defadd(self,x,y):returnx+ydefdivide(self,x,y):returnx/ywithdescribe(Calculator)asit:@it.beforedefbefore(test):test.calc=Calculator()withit("adds two numbers")astest:test.assertEqual(test.calc.add(2,4),6)withit("multiplies two numbers")astest:test.assertEqual(test.calc.multiply(2,3),6)withcontext(Calculator.divide):withit("divides two numbers")astest:test.assertEqual(test.calc.divide(8,4),2)withit("doesn't divide by zero")astest:withtest.assertRaises(ZeroDivisionError):test.calc.divide(8,0)

你可以在examples/calculator_spec.py找到这个例子,还有一些 其他人。

在安装科特迪瓦之后,运行上面的示例 ivoire examples/calculator_spec.py应该产生:

spec output

如果您想要更详细的输出,请尝试传递-v命令行标志。

在未来的某个时候,当我整理出一个 进口钩子,科特迪瓦也可以作为 ivoire transform `which nosetests` --testmatch='(?:^|[\b_\./-])[Ss]pec', 它将自动将规范转换为普通的unittest.TestCases。 这方面的工作正在进行中。

运行测试套件

科特迪瓦的测试套件目前主要是自己编写的,但它仍然有一个 使用标准unittest测试用例编写的小部分。

您可以通过在 通过包管理器安装tox或使用 pip install tox。这将运行套件的两部分。

贡献

我是朱利安·伯曼。

你可以在#python-testing和其他各种频道的freenode上找到我 (尼克:tos9)如果你想聊天,或者如果有足够的兴趣 东西,在##ivoire中。

科特迪瓦是在GitHub上发展起来的。

请随意分叉并提交修补程序或功能请求。你的贡献 非常欢迎!

如果你想让他们尽快合并,请尝试包括 使用pull请求进行测试,并遵循通用python编码标准和 你自己的常识:)。

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

推荐PyPI第三方库


热门话题
java在C中嵌入jar文件#   java如何快速计算2^x?   java 安卓另一个类sendSMS和调用Main活动错误   java将两个列表组合起来,并在匹配后设置值   java定制Zuul异常   java在webapp中检测用户区域的可靠方法是什么?   java多线程访问ArrayList   使用Java将xml Post请求有效负载发送到SOAP Web服务   反射在不知道包名的情况下加载特定文件夹中的所有类   java Eclipse不启动:退出代码13   java为什么我需要在ListIterator中调用两次previous(),以便进行“反向”迭代?   java为什么同步在以下代码中不起作用?   使用JSF和PrimeFaces的java自适应轮询   Java通过仅使用iText限制比例和缩小比例来转换图像   swing Java repaint()在侦听器中的行为与在其余代码中的行为不同