背景:
工作中发现很多测试场景在回归测试时没有时间也没有精力去覆盖,然而这些没有覆盖到的场景,往往和当前迭代有一些不为认知的联系,所以就会产生一些想象不到的线上问题。
所以,考虑通过自动化去覆盖回归的一些场景。
因为都在说python好上手巴拉巴拉,所以选择了python+selenium去做自动化测试。
找了一个学习的网站就开始一步一步摸索了,准备一边摸索,一边记录一些开始不明所以,但是回过头来后发现特别愚蠢的一些问题。
问题描述
测试类通过main调用不会报错,在终端通过pytest -s 执行时会报错,报错内容“ModuleNotFoundError: No module named ‘XXX”,因为我的目录结构是这样的:
然后我在终端内执行的命令是这样的:
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
然后就可以成功运行啦~ 开心
.
.
.
不过,真是愚蠢啊