解决:ImportError while loading conftest 'e:\virtual_workshop\app_autotest\testcases\conftest.py

网友投稿 697 2022-08-26


解决:ImportError while loading conftest 'e:\virtual_workshop\app_autotest\testcases\conftest.py

之前遇到了很多次类似的问题,即pytest加载conftest.py的时候报如下的错误

我的目录结构是这样的:

APP_AutoTest/ |- TestCases/ |- __init__.py |- conftest.py |- test_login.py |- test_welcome.py

后来将目录名改成test_cases,可以正常运行了。testcases也可以,就是不能大写

​​conftest.py: local per-directory plugins​​中说:

NoteIf you have ​​conftest.py​​ files which do not reside in a python package directory (i.e. one containing an ​​__init__.py​​) then “import conftest” can be ambiguous because there might be other ​​conftest.py​​ files as well on your ​​PYTHONPATH​​ or ​​sys.path​​. It is thus good practice for projects to either put ​​conftest.py​​ under a package scope or to never import anything from a ​​conftest.py​​ file.

大意是,如果conftest.py放在包的外面,那么导入conftest的时候可能会产生歧义,因为PYTHONPATH或sys上可能还有别的conftest.py。比如你在test_cases包内定义了一个conftest.py,又在工程目录下定义了一个conftest.py。所以对项目而言,做好的做法是将conftest.py放在包内或从不导入任何的conftest.py文件

在​​Plugin discovery order at tool startup​​中说:

Note that pytest does not find ​​conftest.py​​ files in deeper nested sub directories at tool startup. It is usually a good idea to keep your ​​conftest.py​​ file in the top level test or project root directory.

在pytest启动时,不会递归的去查找子目录下的conftest.py文件。建议将conftest.py放在测试包下面或项目根目录

总结以上内容,有几点注意:

1. conftest.py最好放在测试包下,测试包的命名以test开头,不能是大写

2. conftest.py不能放在测试包的子目录下,比如这样:

APP_AutoTest/ |- test_cases/ |- __init__.py |- test_login.py |- test_welcome.py |- test_demo/ |- __init__.py |- conftest.py


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:全面解析JPA 仓库repository中的findAll()方法
下一篇:flask学习(一):环境的安装(flask开发环境)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~