跳转到主要内容

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

项目描述

PyPI version Supported Python versions Build status Codecov Code coverage

ivoire 是一个 Python 的类似于 RSpec 的测试框架。它旨在以不会过于破坏性或不合常规的方式将一些小型构造引入 Python。

如果您从未听说过 RSpec,它是一个 Ruby BDD 框架,被广泛使用,其测试风格与 xUnit 不同。

安装

Ivoire 在 PyPI 上,可以通过 pip install ivoire (或通过您首选的安装方法) 安装。

在此阶段,您应将 Ivoire 视为实验性的,并且可能存在许多待解决的问题,因此请在遇到问题时在 问题跟踪器 上提交它们。

一个小例子

要使用 Ivoire 编写规范,请简单导入并使用 ivoire.describe。然后,您可以使用包含的 ivoire 测试运行器执行规范。

以下是一个规范的外观示例。

from ivoire import describe, context


class Calculator(object):
    def add(self, x, y):
        return x + y

    def divide(self, x, y):
        return x / y


with describe(Calculator) as it:
    @it.before
    def before(test):
        test.calc = Calculator()

    with it("adds two numbers") as test:
        test.assertEqual(test.calc.add(2, 4), 6)

    with it("multiplies two numbers") as test:
        test.assertEqual(test.calc.multiply(2, 3), 6)

    with context(Calculator.divide):
        with it("divides two numbers") as test:
            test.assertEqual(test.calc.divide(8, 4), 2)

        with it("doesn't divide by zero") as test:
            with test.assertRaises(ZeroDivisionError):
                test.calc.divide(8, 0)

您可以在 examples/calculator_spec.py 中找到此示例,以及一些其他示例。

安装 Ivoire 后,使用 ivoire examples/calculator_spec.py 运行上面的示例应该会生成

spec output

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

在某个时候(希望很快),当我已经整理好导入钩子后,Ivoire 也将能够通过以下命令运行:ivoire transform `which nosetests` --testmatch='(?:^|[\b_\./-])[Ss]pec',这将自动将规格转换为正常的 unittest.TestCase。相关工作正在进行中。

运行测试套件

Ivoire 的测试套件目前主要使用自身编写,但仍有一小部分是使用标准 unittest 测试用例编写的。

您可以通过在安装 tox(通过包管理器或使用 pip install tox)后,在仓库检出根目录下运行 tox 来运行 Ivoire 的测试套件。这将运行套件的所有部分。

贡献

我是 Julian Berman。

如果您想聊天,可以在 Freenode 的 #python-testing 以及其他多个频道(昵称:tos9)找到我。

Ivoire 在 GitHub 上开发。

请随意fork并提交补丁或功能请求。您的贡献非常受欢迎!

如果您希望它们能快速合并,请在 pull request 中包含测试,并遵循一般的 Python 编码标准和自己的常识 :).

项目详情


下载文件

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

源分发

ivoire-0.4.0.tar.gz (50.1 kB 查看哈希值)

上传时间

构建分发

ivoire-0.4.0-py3-none-any.whl (25.0 kB 查看哈希值)

上传时间 Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面