Question: python unittest执行程序在pycharm可以成功运行但使用cmd直接结束,未打印日志和报错
原因分析:
第一步:
cmd运行run.py时,提示如下
图片显示载入用例Failed,那么运行LoginTest.py(对应自己框架中的模块testpy文件)排查错误
第二步:
1.cmd运行LoginTest.py时,提示如下
2.这里报错未找到名称为Common的模块,查看LoginTest.py引入包名如下:
import logging,unittest
import time
from Common.myunit import StartEnd
from BusinessView.LoginView import LoginView
3.Common模块未找到的原因分析:cmd运行py脚本时,若未指定脚本path路径,会首先到python的Path环境变量路径查看包,如果path中没有,则会出现上述错误–>No module named ‘Common’
第三步:解决这类问题的办法:指定Common路径供LoginTest.py调用模块使用
方法1:函数添加
在LoginTest.py中指定path路径
import sys
pathcommon='D:\\BugeProject'
sys.path.append(pathcommon)
方法2:在python包中的\Lib\site-packages目录中新建.pth文件 写入common的上级目录路径.
注:因此处添加common后又提示PyYAML模块未找到,原因是由于框架中引用的PyYAML是导入在Pycharm中,未通过pip install PyYAML安装,故未找到PyYAML模块
建议后续在pycharm中导入第三方库模块时,尽量采取cmd命令行安装命令:pip install PyYAML
这样可以避免在后期采用命令行运行脚本时,出现找不到对应三方库的错误提示.
第四步:
python3.+版本,需要在run.py脚本中写入main函数入口的代码块
if __name__ == '__main__':
unittest.main()
原因:网络教程中使用的python版本可能与自身安装版本不同,因此会出现一些未知的问题,如果上述1,2,3以及重启都无法解决你的问题,建议排查python版本问题: