如果整个自动化测试的所有文件全部存储在同一个文件夹,那么项目会变得难以管理,列表杂乱无章。
即使对项目做了分层设计,给不同类型文件做了划分,那么不同文件夹各自的路径也不好管理;在一个项目下,最好的定位应该从项目所在盘符的根路径开始,而每个文件夹的路径不建议直接写死,因为项目在环境也许不是永久固定的,将来可能会涉及到迁移,如果我们将项目从Windows系统迁移到Linux系统下,所有路径都会失效。
所以,最好的解决办法是采用:相对路径+路径拼接,将所有高频使用的路径全部整理到一个文件paths.py里,其他地方直接调用即可。
如何实现上述方案呢?解决方法也很简单,会涉及到Python的一个内置模块os,
在使用它之前先了解一些基本知识,
__file__:Python的内建变量,它表示当前文件的系统绝对路径,包含文件名
os.path.dirname(参数1):用于获取文件所在的文件夹路径,参数1可以是文件,可以是文件夹
os.path.join(路径1,路径2):拼接两个路径,拼接结果为>路径1+路径2
接下来就来实现它,先建好文件分类,paths.py放在common文件夹里,
大致步骤如下,
1、导入os: import os
2、获取paths.py所在文件夹路径
COMMON_PATH = os.path.dirname(__file__)
3、common的上级目录路径
PROJECT_PATH = os.path.dirname(COMMON_PATH)
4、其他路径
DATAS_PATH = os.path.join(PROJECT_PATH, 'datas') CASES_PATH = os.path.join(PROJECT_PATH, 'cases')
通过上面这种方式,获取的文件路径一定是正确的,即使项目环境发生了迁移,也不会影响程序的运行。
在其它地方调用路径也很方便,就像模块一样直接导入就可以使用 from common.paths import CASES_PATH
----------------end--------------------