跳转到主要内容

为OpenERP提供有用的测试基类和工具

项目描述

该发行版旨在提供测试工具,特别是单元测试基类,以增强OpenERP(版本 >= 7)内建的测试工具。

目前,它包含以下基测试类

如何安装

一般来说,您只需确保可以从要运行的测试的Python可执行文件中导入anybox.testing.openerp即可。

Buildout食谱的用户只需将anybox.testing.openerp添加到他们的egg列表中,最好是在为开发者设计的buildout配置中

[buildout]
extends = buildout.cfg

[openerp]
eggs += anybox.testing.openerp

(当然,假设安装OpenERP的部分命名为openerp

SharedSetupTransactionCase

from anybox.testing.openerp import SharedSetupTransactionCase

该类允许在测试类级别上共享测试数据准备,从而无需重复执行。它内部依赖于PostgreSQL savepoints来实现这一点。

最简单的用法是加载一些XML文件

class MyTestCase(SharedSetupTransactionCase):

    _data_files = ('employees.xml',
                   'products.xml')

    _module_ns = 'tests'

路径相对于包含测试Python模块的目录(通常是tests);_module_ns用于指定数据要插入的(现有或未现有)OpenERP模块的命名空间。这对于在one2many值中的交叉引用是必要的。

您还可以通过重写initTestData类方法来插入自己的准备

@classmethod
def initTestData(cls):
    # if you need them XML data files:
    super(MyTestCase, cls).initTestData()
    cls.initLotsOfStuff()

最后,这个类还配备了实用和断言方法

TransactionCase

from anybox.testing.openerp import TransactionCase

这是openerp.tests.common.TransactionCase的一个简单子类,具有以下特点:

  • 实用和断言方法

  • (仅适用于 Python >= 2.7 的上下文) 更健壮的 tearDown,可防止在 setUp 过程中发生异常。

    此类异常已被观察到会导致 PostgreSQL 死锁,这是开发者头疼和浪费时间的主要原因。

实用工具和断言方法

Both TransactionCaseSharedSetupTransactionCase 具有额外的辅助方法。这些是

  • assertRecord()

  • searchUnique()

  • readUnique()

  • assertUniqueWithValues()

它们允许更直接的编写和更高的可读性。有关更多详细信息,请参阅文档字符串。本文档应很快被 Sphinx 化。

为什么是一个单独的包

我们(Anybox)非常愿意直接包含在 OpenERP 核心中,并准备将其作为适当的合并请求提交(因此比已经做过的需要更多的资源)。

尽管如此,单独包的原因是

  • 我们不希望在项目中依赖核心的实际包含

  • 我们需要在 v7 分支(当前稳定版)中可用

  • 我们可能想要或需要保持领先于未来可能发生的任何包含;使用已发布的版本对我们来说比在我们的私有 VCS 中跟踪更方便。

为什么不使用扩展模块?

你真的想在模块列表中看到单元测试模块吗?

作者

  • Georges Racinet (@gracinet on identi.ca & twitter), Anybox SAS, http://anybox.fr, GPG: 0x33AB0A35 on public key servers.

贡献

我们非常欢迎贡献。请勿犹豫,在 BitBucket 仓库 上分叉和发起拉取请求

变更

1.3.1 (2014-01-31)

  • #2: 当 read(cr, uid, id) 返回列表时,assertRecord 的健壮性。

1.3 (2013-12-26)

  • 添加了新的实用工具 assertUniqueWithValues(),结合 searchUnique()assertRecord 以节省更多麻烦。

1.2 (2013-11-07)

  • 添加了新的实用工具 assertNoRecord(model, domain)

1.1 (2012-08-05)

  • 添加了实用工具和断言方法

  • 纠正了文档

1.0 (2012-07-13)

  • 首次发布

项目详情


下载文件

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

源分发

anybox.testing.openerp-1.3.1.tar.gz (8.4 kB 查看哈希值)

上传时间

由以下机构支持

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