• 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并根据场景模拟点击和输入。

  • 相关阅读:
    一个日志框架的开源,有些不错的创意。
    发现vs2005一个bug!庆祝一下!
    (新手文)偶说说什么是IoC (反向注入、依赖注入)
    数据库移植到sql server遇到的问题。
    Pixysoft.Framework.Configuration 开发实录
    Pixysoft.Framework.Noebe.Json 开发实录
    介绍一下我设计的工作流引擎,欢迎拍砖仍鸡蛋
    用mysql相当多问题。不是说开源不好,可是拜托,争争气吧
    设计之路——我的成果小报告
    黑客攻击:20090921 23:41:17:171
  • 原文地址:https://www.cnblogs.com/myt2000/p/9680697.html
Copyright © 2020-2023  润新知