“加入自动化检测”的版本间的差异
来自Odoo大V社-odoo中文开发手册
第9行: | 第9行: | ||
现在添加实际的测试代码放在tests/test_todo.py文件里: | 现在添加实际的测试代码放在tests/test_todo.py文件里: | ||
− | + | ||
− | # -*- coding: utf-8 -*- | + | # -*- coding: utf-8 -*- |
− | from odoo.tests.common import TransactionCase | + | from odoo.tests.common import TransactionCase |
− | class TestTodo(TransactionCase): | + | class TestTodo(TransactionCase): |
− | def test_create(self): | + | def test_create(self): |
− | "Create a simple Todo" | + | "Create a simple Todo" |
− | Todo = self.env['todo.task'] | + | Todo = self.env['todo.task'] |
− | task = Todo.create({'name': 'Test Task'}) | + | task = Todo.create({'name': 'Test Task'}) |
− | self.assertEqual(task.is_done, False) | + | self.assertEqual(task.is_done, False) |
− | + | ||
这里增加了一种简单的测试例子来创建新的to-do任务来验证测试例子是否被执行? 测试例子的字段具有合适的默认值。 | 这里增加了一种简单的测试例子来创建新的to-do任务来验证测试例子是否被执行? 测试例子的字段具有合适的默认值。 |
2016年12月22日 (四) 10:09的版本
编程的最佳做法包括自动测试你的代码。 这对动态语言更为重要,如 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/子目录的升级模块 并运行。如果有任何测试失败了,服务器日志都会在这里显示。