odoo官方文档第八章 Testing in odoo (odoo的测试)

Testing in odoo

有许多方法可以测试应用程序。 在Odoo,我们有三种测试

  • python单元测试:用于测试模型业务逻辑
  • js单元测试:这是隔离测试javascript代码所必需的
  • tours:这是一种集成测试形式。 游览确保python和javascript部分正确地相互通信。

Testing Python code

Odoo使用unittest为测试模块提供支持。

要编写测试,只需在模块中定义test子包,就会自动检查测试模块。 测试模块的名称应该以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版中更改:之前,测试运行器只运行添加到两个列表fast_suite的模块并checkstests / __ init__.py。 在8.0中,它将运行所有导入的模块

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

TestCase,其中每个测试方法都在自己的事务中运行,并带有自己的游标。 回滚事务并在每次测试后关闭游标。

browse_ref(xid)

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

Parameters:xid --完全限定的外部标识符,格式为module.identifier

Raise: ValueError if not found

Returns:Basemodel

ref(xid)

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

Parameters:xid- -完全限定的外部标识符,格式为module.identifier

Raise: ValueError if not found

Returns:registered id

默认情况下,在安装相应模块后立即运行测试。 测试用例也可以配置为在安装所有模块后运行,而不是在模块安装后立即运行:

odoo.tests.common.at_install(flag)

设置测试的at-install状态,该标志是一个布尔值,指定在模块安装期间测试应该(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_开始

Running tests

如果在启动Odoo服务器时启用了--test-enable,则在安装或更新模块时会自动运行测试。

从Odoo 8开始,不支持在安装/更新周期之外运行测试。

Testing JS code

Qunit test suite

Odoo Web包括对Odoo Web的核心代码和您自己的javascript模块进行单元测试的方法。 在javascript方面,单元测试基于QUnit,其中包含许多帮助程序和扩展,可以更好地与Odoo集成。

要查看运行器的外观,找到(或启动)启用了Web客户端的Odoo服务器,然后导航到/ web / tests这将显示运行器选择器,它会列出所有带有javascript单元测试的模块,并允许启动任何 他们(或所有模块中的所有javascript测试)。

runner.png

单击任何运行器按钮将在捆绑的QUnit运行器中启动相应的测试:

tests.png

Writing a test case

本节将尽快更新。

Integration Testing(集成测试)

单独测试Python代码和JS代码非常有用,但它并不能证明Web客户端和服务器协同工作。 为了做到这一点,我们可以编写另一种测试:游览。 游览是一些有趣的业务流程的迷你场景。 它解释了应遵循的一系列步骤。 然后,测试运行器将创建一个phantom_js浏览器,将其指向正确的URL并根据场景模拟点击和输入。

转载于:https://www.cnblogs.com/myt2000/p/9680697.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值