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

Posted myt2000

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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测试)。

技术分享图片

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

技术分享图片

Writing a test case

本节将尽快更新。

Integration Testing(集成测试)

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


以上是关于odoo官方文档第八章 Testing in odoo (odoo的测试)的主要内容,如果未能解决你的问题,请参考以下文章

SPRING IN ACTION 第4版笔记-第八章Advanced Spring MVC-003-Pizza例子的基本流程

SPRING IN ACTION 第4版笔记-第八章Advanced Spring MVC-001- 配置SpringFlow(flow-executorflow-registryFlowHand(代

async in c#5 第八章之哪个线程运行我的异步代码

《DOM Scripting》学习笔记-——第八章 充实文档的内容

第八章-文档的压缩与打包

第八章