testng - Odoo v11.0 测试
问题描述
我是odoo的新手。我正在使用 odoo v11.00 我正在尝试测试我的自定义模块的模型。
这是文件结构
course_management
|-- ...
`-- tests
|-- __init__.py
|-- test_course_management_course.py
这是 test_course_management_course.py 文件的内容
from odoo.tests import common
class TestCourseManagement(common.TransactionCase):
def test_creation_end_date(self):
test_course = self.env['course.management.course'].create({
'name': 'TestProjectfromtestcase'
})
self.assertEqual(test_course.name, 'TestProject')
我尝试过的命令如下
./odoo-bin -c /home/bs632/odoo.conf -u course_management --test-enable -d testDB
./odoo-bin -c /home/bs632/odoo.conf --log-level=test -u course_management --test-enable -d testDB --test-report-directory=./testlog.
./odoo-bin -c /home/bs632/odoo.conf --log-level=test -u course_management --test-enable -d testDB
./odoo-bin -c /home/bs632/odoo.conf --log-level=test -i course_management --test-enable -d testDB
但是测试没有运行。
解决方案
我已经使用 odoo 工作了 9 年,我可以说,odoo 测试很糟糕。在 vanilla 安装 11.0 中,您无法运行单个测试单元、案例或测试单个模块。你可以运行“all or nothing”,但是当你编写一个单独的测试单元时,运行“everything”完全没有意义。它在 odoo 12.0 中使用测试标签进行了更改,您可以在其中运行如下命令:
python odoo-bin --test-tags nice,standard
但它仍然不支持运行单个测试单元、案例或模块。我不知道为什么 odoo 即使在 15.0 版本中也没有修复它。不幸的是,它不支持控制器测试(HttpCase)。
Odoo 测试是在 unittest 模块中编写的,但命令如下
python -m unittest discover course_management
不适用于 odoo,因为它不会被包裹在 odoo 服务器中。基本上你会得到无法导入odoo的信息。
我发现 odoo 是最好的 python 框架之一,但是如果没有“正常”测试,大多数第三方开发人员自定义创建的代码通常质量很差。在我 9 年的经验中,我工作的公司都没有编写测试。您可以在 odoo 应用程序中找到一些模块。
推荐阅读
- mysql - mysql 无法使用本地加载数据导入以 \r\n\r\n 结尾的 csv 行
- database - DCount/检查 Access DB 字段中是否存在值
- facebook - 按 ID 查找 Facebook 个人资料 URL
- mysql - 如何使用 LUA 连接到 MySQL 的数据库?
- node.js - 如何从 mongo db 中的对象数组中获取特定的数组元素
- hibernate - 我的本机 Sql 查询正在工作,但 Hql 没有工作
- assembly - 从 MIPS 汇编语言中的给定字符串创建元素数组
- java - 为什么除了“等边:三个相等的边”之外什么都没有
- c# - 如何调用使用令牌 OAuth 的第 3 方 API 以允许使用依赖注入通过 Web API 进行调用
- python - 修改嵌套列表的副本会修改原始列表