“加入自动化检测”的版本间的差异

来自Odoo大V社-odoo中文开发手册
跳转至: 导航搜索
(创建页面,内容为“编程的最佳做法包括自动测试你的代码。 这对动态语言更为重要,如 Python语言。 因为没有编译的步骤, 代码实际是解释运行...”)
 
第9行: 第9行:
  
 
现在添加实际的测试代码放在tests/test_todo.py文件里:
 
现在添加实际的测试代码放在tests/test_todo.py文件里:
 +
<code>
 
# -*- coding: utf-8 -*-
 
# -*- coding: utf-8 -*-
 
from odoo.tests.common import TransactionCase
 
from odoo.tests.common import TransactionCase
第17行: 第18行:
 
task = Todo.create({'name': 'Test Task'})
 
task = Todo.create({'name': 'Test Task'})
 
self.assertEqual(task.is_done, False)
 
self.assertEqual(task.is_done, False)
 +
</code>
  
 
这里增加了一种简单的测试例子来创建新的to-do任务来验证测试例子是否被执行? 测试例子的字段具有合适的默认值。
 
这里增加了一种简单的测试例子来创建新的to-do任务来验证测试例子是否被执行? 测试例子的字段具有合适的默认值。

2016年12月22日 (四) 18:03的版本

编程的最佳做法包括自动测试你的代码。 这对动态语言更为重要,如 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文件里:

  1. -*- 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/子目录的升级模块 并运行。如果有任何测试失败了,服务器日志都会在这里显示。