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
的模块并checks
在tests / __ 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(代