odoo10参考系列--测试模块

Odoo使用单元测试对测试模块进行支持。

要编写测试,只需在模块中定义一个tests子包,它将自动检查测试模。测试模块应该有一个以test_开始的名字并且应该从tests/__init__.py导入,例如: 

your_module
|-- ...
`-- tests
    |-- __init__.py
    |-- test_bar.py
    `-- test_foo.py

且 __init__.py 包括:

from . import test_foo, test_bar

警告

不从tests/__init__.py导入,测试模块将不会运行

版本8.0中的变化:previously, 以前,测试者只会运行模块添加到两个列表 fast_suite 和在tests/__init__.py中的checks 。在8.0中,它将运行所有导入模块

测试者将会简单的运行任何测试案例,作为正式单元测试文档的描述,但是Odoo提供了一些工具和测试Odoo内容(主要是模块)相关的帮助内容:

class odoo.tests.common.TransactionCase(methodName='runTest')

测试用例中的每个测试方法是运行在其自己的事务上,并使用自己的游标。每次测试结束后,回滚事务并关闭游标

browse_ref(xid)

为所提供的外部标识符返回记录对象

参数

xid -- 完全限定外部标识符,在表单中module.identifier

异常

ValueError 如果没有发现

返回

BaseModel

ref(xid)

返回所提供的外部标识符的数据库ID,get_object_reference的快捷方式 

参数

xid -- 完全限定外部标识符,在表单中module.identifier

                          异常

ValueError 如果没有发现

返回

注册的id

class odoo.tests.common.SingleTransactionCase(methodName='runTest')

测试用例中的所有测试方法都是在同一个事务中运行,事务以第一个测试方法开始并在最后一个结束后回滚

browse_ref(xid)

为所提供的外部标识符返回记录对象

参数

xid -- 完全限定外部标识符,在表单中module.identifier

异常

ValueError 如果没有发现

返回

BaseModel

ref(xid)

返回所提供的外部标识符的数据库ID,get_object_reference的快捷方式 

参数

xid -- 完全限定外部标识符,在表单中module.identifier

异常

ValueError 如果没有发现

返回

注册的id

class odoo.tests.common.SavepointCase(methodName='runTest')

类似SingleTransactionCase 所有测试方法运行在一个单一的事务中,但每个测试用例都是运行在一个回滚保存点中(自事务)。

对包含快速测试的测试用例有用,但是对使用重要的数据库设置共有的所有案例 (在数据库测试数据中是复杂的)是无效的: setUpClass()可用于生成数据库测试数据一次,然后所有测试用例使用相同的数据而不影响彼此,但不必重新创建测试数据

class odoo.tests.common.HttpCase(methodName='runTest')

事务HTTP,使用开发的url和虚构js帮助者的测试用例

browse_ref(xid)

为所提供的外部标识符返回记录对象

参数

xid -- 完全限定外部标识符,在表单中module.identifier

异常

ValueError 如果没有发现

返回

BaseModel

phantom_js(url_pathcodeready='window'login=Nonetimeout=60**kw)

测试运行在浏览器中的js代码 - 可选的日志作为“登录” - 根据url路径加载页面 - 等待就绪对象可用 - 在页面内容eval(code)

信号成功测试: console.log('ok')

信号失败测试: console.log('error')

如果没有在超时测试失败之前完成

ref(xid)

返回所提供的外部标识符的数据库ID,get_object_reference的快捷方式 

参数

xid -- 完全限定外部标识符,在表单中module.identifier

异常

ValueError 如果没有发现

返回

注册的id

默认情况下,在安装了相应的模块后,测试就运行一次。测试用例还可以配置为在安装了所有模块之后运行,而不是在模块安装之后运行:

odoo.tests.common.at_install(flag)

设置一个测试的在安装状态,该标志是一个布尔值,指定测试是否应该 (True)或不应该(False) 在模块安装期间运行

默认情况下,在安装模块之后,开始安装下一个模块之前运行测试

odoo.tests.common.post_install(flag)

设置测试的后安装状态。该标志是一个布尔值,指定测试是否应该在一组模块安装之后运行。

默认情况下,在安装当前安装集中的所有模块之后,不会运行测试。

最常见的情况是使用TransactionCase 并在每个方法中测试模型的属性:

class TestModelA(common.TransactionCase):
    def test_some_action(self):
        record = self.env['model.a'].create({'field': 'value'})
        record.some_action()
        self.assertEqual(
            record.field,
            expected_field_value)

    # other tests...

测试方法名必须以test_开始 

运行测试

测试是自动运行,当安装或更新的模块。如果--test-enable 是启用的,当启动Odoo服务器时。

从Odoo 8是起,在安装/更新周期之外运行测试是不支持的

 

ps:有翻译不当之处,欢迎留言指正。

原文地址:https://www.odoo.com/documentation/10.0/reference/testing.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值