Odoo单元测试无法执行求助(v14/v15/v16版本)
Odoo单元测试未执行排查方案(Docker环境,14/15/16版本)
问题场景
在Docker容器内的Odoo 16(14、15版本存在同样问题)中执行以下命令运行单元测试,日志显示已加载测试文件,但测试未实际执行,进程直接触发 shutdown:
执行命令:
odoo -i custom_fields_mapping -d odootest8 -p 8001 --db_user=odoo --db_password=11111111111 --db_host=localhost --log-level=test --test-file=/mnt/extra-addons/custom_fields_mapping/tests/test_custom_fields_mapping.py --stop-after-init
关键日志片段:
2023-03-21 13:52:32,558 414 INFO odootest8 odoo.service.server: loading test file /mnt/extra-addons/custom_fields_mapping/tests/test_custom_fields_mapping.py 2023-03-21 13:52:32,581 414 INFO odootest8 odoo.service.server: Initiating shutdown
排查与解决方案
1. 检查测试文件结构与命名规范
Odoo对测试文件有严格的结构要求,不符合规范会导致测试被跳过:
tests目录必须包含空的__init__.py文件,否则Python无法识别为包- 测试类必须继承自
odoo.tests.common.TransactionCase或odoo.tests.common.SavepointCase - 测试方法必须以
test_为前缀,例如test_field_mapping_logic()
2. 调整命令参数,避免冲突
原命令中-i(安装模块)与--test-file的组合可能导致流程异常,建议替换为以下两种方式:
- 若模块已安装,用
-u更新模块并执行测试:odoo -u custom_fields_mapping -d odootest8 --db_user=odoo --db_password=11111111111 --db_host=localhost --log-level=test --test-file=/mnt/extra-addons/custom_fields_mapping/tests/test_custom_fields_mapping.py --stop-after-init - 若为全新数据库,先初始化模块再执行测试:
odoo -d odootest8 --db_user=odoo --db_password=11111111111 --db_host=localhost --init=custom_fields_mapping --test-file=/mnt/extra-addons/custom_fields_mapping/tests/test_custom_fields_mapping.py --stop-after-init
3. 确认容器内测试文件权限与路径
Docker容器内的Odoo进程需拥有测试文件的读取权限:
- 检查文件权限:
docker exec -it <你的容器ID> ls -l /mnt/extra-addons/custom_fields_mapping/tests/test_custom_fields_mapping.py - 若权限不足,调整权限:
docker exec -it <你的容器ID> chmod 644 /mnt/extra-addons/custom_fields_mapping/tests/test_custom_fields_mapping.py
4. 启用测试模式并获取详细日志
添加--test-enable强制启用测试执行,同时将日志级别设为debug排查细节:
odoo -u custom_fields_mapping -d odootest8 --db_user=odoo --db_password=11111111111 --db_host=localhost --log-level=debug --test-enable --test-file=/mnt/extra-addons/custom_fields_mapping/tests/test_custom_fields_mapping.py --stop-after-init
内容的提问来源于stack exchange,提问作者KostasC
相关产品推荐
相关产品推荐

