一个简单的类似rspec的测试框架。
ivoire的Python项目详细描述
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应该产生:
如果您想要更详细的输出,请尝试传递-v命令行标志。
在未来的某个时候,当我整理出一个 进口钩子,科特迪瓦也可以作为 ivoire transform `which nosetests` --testmatch='(?:^|[\b_\./-])[Ss]pec', 它将自动将规范转换为普通的unittest.TestCases。 这方面的工作正在进行中。
运行测试套件
科特迪瓦的测试套件目前主要是自己编写的,但它仍然有一个 使用标准unittest测试用例编写的小部分。
您可以通过在 通过包管理器安装tox或使用 pip install tox。这将运行套件的两部分。
贡献
我是朱利安·伯曼。
你可以在#python-testing和其他各种频道的freenode上找到我 (尼克:tos9)如果你想聊天,或者如果有足够的兴趣 东西,在##ivoire中。
科特迪瓦是在GitHub上发展起来的。
请随意分叉并提交修补程序或功能请求。你的贡献 非常欢迎!
如果你想让他们尽快合并,请尝试包括 使用pull请求进行测试,并遵循通用python编码标准和 你自己的常识:)。