在学习接口自动化时,遇到一个很坑的问题,一直不知道啥原因,后面知道真相后,感觉要蠢哭了orz~~~~~~
事情真相是这样的:
如下如,test文件夹下 有个 testcase,可以运行成功且无报错,也生成了测试报告,如红框所示:
测试报告可是打开测试报告后,如下图所示:
测试结果并没有写入表单中。
打开测试报告折腾了好久,最后发现是 少了 __init__.py 文件,如果没有__init__.py文件的话就是普通的directory,它就不能被导入或者包含其它的模块和嵌套包,那么执行也是无效的。所以说 __init__.py的 第一个作用就是package的标识。
如果是直接新建 python package 的话,可以看到会默认在该目录下新增一个 __init__.py 文件,该Python文件默认是空的。
嗯~ 后面加上了 __init__.py文件后,再次运行用例。
再次运行用例得到新的 测试报告,并打开测试报告查看内容,如下图所示,已经有测试结果了。
新的测试报告 新的测试报告内容那么__init__.py 到底是什么作用呢?
1. python中package的标识,它可以什么也不定义;可以只是一个空文件,但是必须存在,不能删除。
2. 我们可以在__init__.py导入我们需要的模块,不需要一个个导入了。
3. __init__.py 中还有一个重要的变量,__all__, 它用来将模块全部导入。
如下图:
# __init__.py 中将模块全部导入
__all__ =['os', 'sys', 're', 'urllib']
# a.py 中可使用 import* 直接导入
from package import*
总之~
_init_.py 还是越简单越好,尽量默认为空就好。
网友评论