gpt4 book ai didi

pycharm - Odoo pytest pycharm

转载 作者:行者123 更新时间:2023-12-04 08:16:52 25 4
gpt4 key购买 nike

我正在尝试在 pycharm 中为 odoo 13 运行 pytest,但没有成功。在控制台中,使用此命令(python odoo-bin -c odoo.conf -i test_module --test-enable)可以正常运行测试。
你如何在 odoo 中运行单元测试?
您是否有一些文档如何设置 pycharm 来运行 pytest?
谢谢!

最佳答案

我能够使用 pycharm 为自定义插件运行测试,但这仅适用于我的情况下的自定义插件,因为我使用 docker 来设置我的 odoo 实例,这意味着 odoo 是一个二进制文件,而不是复制源代码。
顺便说一句,此响应使用包 pytest-odoo请先看看他们的文档。
要使用 docker + pycharm + pytest-odoo 执行此操作,您需要指定一个 Dockerfile,如下所示:

USER root
RUN apt-get update && \
apt-get install -y --no-install-recommends \
python3-pip
RUN pip3 install pytest-odoo coverage pytest-html
USER odoo
还有一个像这样的常规 docker-compose:

services:
web:
container_name: plusteam-odoo-web
build:
context: .
dockerfile: Dockerfile
image: odoo:14
depends_on:
- db
ports:
- "8069:8069"
volumes:
- odoo-web-data:/var/lib/odoo
- ./config:/etc/odoo
- ./addons:/mnt/extra-addons
command: --dev all
db:
container_name: plusteam-odoo-db
image: postgres:13
ports:
- "5432:5432"
environment:
- POSTGRES_DB=postgres
- POSTGRES_PASSWORD=odoo
- POSTGRES_USER=odoo
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- odoo-db-data:/var/lib/postgresql/data/pgdata
volumes:
odoo-web-data:
odoo-db-data:
一旦你有了这个,你可以运行 docker-compose up -d为了让您的 odoo 实例运行,odoo 容器将安装 pytest-odoo,下一部分是告诉 pycharm 使用带有 odoo 修改图像的远程解释器,包括 pyest-odoo 包:
enter image description here
现在,每次您在 pycharm 中运行脚本时,它们都会根据您提供的图像启动一个新容器。
在检查了 pycharm 启动的容器后,我意识到它们将项目目录绑定(bind)到 /opt/project/容器内的目录,这很有用,因为您需要修改 odoo.conf当您运行测试时。
enter image description here
您可以为您应该做的自定义测试数据库自定义数据库连接,重要的部分是您需要映射 addons_path /opt/project/addons 的选项或 pycharm 启动的容器内的最终路径,您的自定义插件可用。
有了这个,你可以为 pytest 创建一个 pycharm 脚本,如下所示:
enter image description here
请注意我们如何为 odoo 配置提供路径并进行修改以进行测试,这样由 pycharm 启动的容器中可用的 odoo 将知道您的自定义插件代码的位置。
现在我们可以运行脚本甚至调试它,一切都会按预期工作。
enter image description here
我在一篇中型文章中进一步讨论了这个问题,我什至写了一个带有工作演示的存储库,所以你可以尝试一下,希望这会有所帮助:
https://medium.com/plusteam/how-to-run-odoo-tests-with-pycharm-51e4823bdc59
https://github.com/JSilversun/odoo-testing-example

关于pycharm - Odoo pytest pycharm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65670361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com