为什么我的测试在 Odoo 10 上没有 运行?
Why are my tests not running on Odoo 10?
我创建了一个简单的待办事项应用程序,其结构如下:
todo_app
├── __init__.py
├── __manifest__.py
├── tests
│ ├── __init__.py
│ └── tests_todo.py
└── todo_model.py
在测试文件夹下我有:
- tests/__init__.py:
# -*- coding: utf-8 -*-
from . import tests_todo
- tests/tests_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, 'foo')
我故意通过将布尔值 task.is_done
与字符串 'foo'
进行比较来使测试失败,但我在日志中没有看到任何内容:
$ ./odoo/odoo-bin -d todo -u todo_app --test-enable
2017-03-17 14:25:28,617 6873 INFO ? odoo: Odoo version 10.0
2017-03-17 14:25:28,618 6873 INFO ? odoo: Using configuration file at /home/odoo/.odoorc
2017-03-17 14:25:28,618 6873 INFO ? odoo: addons paths: ['/home/odoo/.local/share/Odoo/addons/10.0', u'/home/odoo/odoo-dev/custom-addons', u'/home/odoo/odoo-dev/odoo/addons', '/home/odoo/odoo-dev/odoo/odoo/addons']
2017-03-17 14:25:28,619 6873 INFO ? odoo: database: default@default:default
2017-03-17 14:25:28,832 6873 INFO ? odoo.service.server: HTTP service (werkzeug) running on 0.0.0.0:8069
2017-03-17 14:25:29,558 6873 INFO todo odoo.modules.loading: loading 1 modules...
2017-03-17 14:25:29,996 6873 INFO todo odoo.modules.loading: 1 modules loaded in 0.44s, 0 queries
2017-03-17 14:25:41,792 6873 INFO todo odoo.modules.loading: loading 13 modules...
2017-03-17 14:25:42,001 6873 INFO todo odoo.modules.registry: module todo_app: creating or updating database tables
2017-03-17 14:25:42,889 6873 INFO todo odoo.modules.loading: 13 modules loaded in 1.10s, 0 queries
2017-03-17 14:25:43,059 6873 WARNING todo odoo.modules.loading: The model todo.task has no access rules, consider adding one. E.g. access_todo_task,access_todo_task,model_todo_task,,1,0,0,0
2017-03-17 14:25:43,625 6873 INFO todo odoo.modules.loading: Modules loaded.
2017-03-17 14:25:43,630 6873 INFO todo odoo.modules.loading: All post-tested in 0.00s, 0 queries
我错过了什么?
尝试将测试模块 tests/tests_todo.py 重命名为 tests/test_todo.py。另外,不要忘记将 tests/__init__.py 中的导入更新为 from . import test_todo
这是因为 Odoo 在搜索属于模块 [reference].
的测试时期望测试模块名称以 test_
开头
我创建了一个简单的待办事项应用程序,其结构如下:
todo_app
├── __init__.py
├── __manifest__.py
├── tests
│ ├── __init__.py
│ └── tests_todo.py
└── todo_model.py
在测试文件夹下我有:
- tests/__init__.py:
# -*- coding: utf-8 -*-
from . import tests_todo
- tests/tests_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, 'foo')
我故意通过将布尔值 task.is_done
与字符串 'foo'
进行比较来使测试失败,但我在日志中没有看到任何内容:
$ ./odoo/odoo-bin -d todo -u todo_app --test-enable
2017-03-17 14:25:28,617 6873 INFO ? odoo: Odoo version 10.0
2017-03-17 14:25:28,618 6873 INFO ? odoo: Using configuration file at /home/odoo/.odoorc
2017-03-17 14:25:28,618 6873 INFO ? odoo: addons paths: ['/home/odoo/.local/share/Odoo/addons/10.0', u'/home/odoo/odoo-dev/custom-addons', u'/home/odoo/odoo-dev/odoo/addons', '/home/odoo/odoo-dev/odoo/odoo/addons']
2017-03-17 14:25:28,619 6873 INFO ? odoo: database: default@default:default
2017-03-17 14:25:28,832 6873 INFO ? odoo.service.server: HTTP service (werkzeug) running on 0.0.0.0:8069
2017-03-17 14:25:29,558 6873 INFO todo odoo.modules.loading: loading 1 modules...
2017-03-17 14:25:29,996 6873 INFO todo odoo.modules.loading: 1 modules loaded in 0.44s, 0 queries
2017-03-17 14:25:41,792 6873 INFO todo odoo.modules.loading: loading 13 modules...
2017-03-17 14:25:42,001 6873 INFO todo odoo.modules.registry: module todo_app: creating or updating database tables
2017-03-17 14:25:42,889 6873 INFO todo odoo.modules.loading: 13 modules loaded in 1.10s, 0 queries
2017-03-17 14:25:43,059 6873 WARNING todo odoo.modules.loading: The model todo.task has no access rules, consider adding one. E.g. access_todo_task,access_todo_task,model_todo_task,,1,0,0,0
2017-03-17 14:25:43,625 6873 INFO todo odoo.modules.loading: Modules loaded.
2017-03-17 14:25:43,630 6873 INFO todo odoo.modules.loading: All post-tested in 0.00s, 0 queries
我错过了什么?
尝试将测试模块 tests/tests_todo.py 重命名为 tests/test_todo.py。另外,不要忘记将 tests/__init__.py 中的导入更新为 from . import test_todo
这是因为 Odoo 在搜索属于模块 [reference].
的测试时期望测试模块名称以test_
开头