pytest学习笔记-记录报错-“ModuleNotFoundError: No module named ‘XXX”

背景:
工作中发现很多测试场景在回归测试时没有时间也没有精力去覆盖,然而这些没有覆盖到的场景,往往和当前迭代有一些不为认知的联系,所以就会产生一些想象不到的线上问题。
所以,考虑通过自动化去覆盖回归的一些场景。
因为都在说python好上手巴拉巴拉,所以选择了python+selenium去做自动化测试。
找了一个学习的网站就开始一步一步摸索了,准备一边摸索,一边记录一些开始不明所以,但是回过头来后发现特别愚蠢的一些问题。


问题描述

测试类通过main调用不会报错,在终端通过pytest -s 执行时会报错,报错内容“ModuleNotFoundError: No module named ‘XXX”,因为我的目录结构是这样的:
pytest学习笔记-记录报错-“ModuleNotFoundError: No module named ‘XXX”_第1张图片
然后我在终端内执行的命令是这样的:

pytest -s C:\Users\DELL\PycharmProjects\pythonProject\V1\add_official_customer\create_official_customer.py

我的报错是这样的:

=============================================================================================================== ERRORS ================================================================================================================
ImportError while importing test module 'C:\Users\DELL\PycharmProjects\pythonProject\V1\add_official_customer\create_official_customer.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
f:\tools\python37\lib\importlib\__init__.py:127: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
V1\add_official_customer\create_official_customer.py:8: in <module>
    from V1.add_official_customer.counter import counter
E   ModuleNotFoundError: No module named 'V1'

报错说没有V1,那我就很疑惑啊,我都已经用了绝对路径来执行了,还找不到??

原因分析:

那我很小白,我不知道原因,肯定去百度啊0.0
然后我看了这篇文章:

https://blog.csdn.net/HBT036017/article/details/128209777

然后我就豁然开朗啊,原来不是执行命令的路径问题,原来是找不到包,然后我就去看了一下我的导包语句

from V1.add_official_customer.counter import counter
from V1.add_official_customer.random_customer import generate_credit_code

然后,我就尝试删除了V1,他就报红,然后我就想我现在就是在 V1/add_official_customer 这个路径下啊,根本不需要加这个东西的嘛…

解决方案:

那最后的导包语句就是改成这样啦:

from counter import counter
from random_customer import generate_credit_code

然后就可以成功运行啦~ 开心

.
.
.
不过,真是愚蠢啊

你可能感兴趣的:(pytest,学习,笔记)