加入自动化测试

来自Odoo大V社-odoo中文开发手册
跳转至: 导航搜索

最佳编程实践包括自动测试你的代码。 这对动态语言更为重要,如 Python语言。 因为没有编译的步骤, 代码实际是解释运行的,所以无法确定有无语法错误的。 一个优秀的编辑器可以提前帮助我们发现这些问题, 但却不能帮助我们确保代码按照预期的执行,比如自动化测试。

Odoo支持使用两种方式来描述测试: 使用 YAML 数据文件或使用 Python 代码、基于 Unittest2 库。 YAML 测试是一种遗留下来的旧老版本, 不建议使用。 我们会更乐意使用 Python 测试并将添加基本的测试实例到我门的模块。

测试代码文件必须用test_开头 , 并且从tests/__init__.py文件导入。 但 测试的 目录(或 Python 的子模块)不应从模块的顶部的__init__.py导入, 因为仅在测试的执行的时候会自动被发现并装载。

测试必须放置在 tests/的 子目录中。 添加一个tests/__init__.py 文件,包含如下内容:

 from . import test_todo  

现在添加实际的测试代码放在tests/test_todo.py文件里:

# -*- coding: utf-8 -*-
from odoo.tests.common import TransactionCase
class TestTodo(TransactionCase):
def test_create(self):
    "Create a simple Todo"
    Todo = self.env['todo.task']
    task = Todo.create({'name': 'Test Task'})
    self.assertEqual(task.is_done, False)

这里增加了一种简单的测试例子来创建新的to-do任务来验证测试例子是否被执行? 测试例子的字段具有合适的默认值。

现在我们即将运行我们的测试。 当我们在安装模,可以添加 --test-enable选项

$ ./odoo-bin -d todo -i todo_app --test-enable

该Odoo服务器将寻找一个tests/子目录的升级模块 并运行。如果有任何测试失败了,服务器日志都会在这里显示。

上一节:创建数据模型
下一节:视图层