Python-动态获取项目路径
2021/10/15 22:14:22
本文主要是介绍Python-动态获取项目路径,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
项目框架如下图所示:
没有获取动态目录之前,我们在测试用例读取excel内容时需要写上绝对路径,如果在多个py文件中都这样定义,excel文件路径发生变化时,维护起来相对麻烦,接下来就来看下如何动态获取文件路径? test.login.py内容如下:
import unittest from funcs import login from common.excel import read_excel from ddt import ddt, data # r :\不转义 file_path = r'D:\PycharmProjects\框架搭建\data\cases.xlsx' excel_data = read_excel(file_path, 'Sheet1') @ddt class TestLogin(unittest.TestCase): @data(*excel_data) def test_login(self, row): # row表示每次从data这个list当住取出一个数据 # 代表一组测试数据,相当于for row in data # 但不同点在于:会自动生成一个新的测试用例方法test_login_1() params_str = row['data'] params = eval(params_str) username = params['username'] pwd = params['pwd'] expected = eval(row['expected']) actual = login(username, pwd) self.assertEqual(expected, actual)
动态获取文件路径,使用py文件作为配置文件相对简单,直接导入变量就可以,且该项目是基于python的,我们在config目录下创建config.py文件,实现动态获取excel文件的路径:
import os # 获取当前文件的绝对路径 current_file = os.path.abspath(__file__) # print(current_file) # 获取当前文件所在目录 current_dir = os.path.dirname(current_file) # print(current_dir) # 获取当前文件所在项目 current_obj = os.path.dirname(current_dir) # print(current_obj) # 获取测试数据的所在目录 config_dir = os.path.join(current_obj, 'data') # 获取cases.xlsx文件的绝对路径 config_file = os.path.join(config_dir, 'cases.xlsx') # print(config_file)
可以看出我们在config.py内定义了多个变量进行动态获取目录及文件的绝对路径,我们可以打印出各变量的具体输出内容:
此时,test.login.py可以修改为:
import unittest from funcs import login from common.excel import read_excel from ddt import ddt, data from config.config import config_file # r :\不转义 # file_path = r'D:\PycharmProjects\框架搭建\data\cases.xlsx' # excel_data = read_excel(file_path, 'Sheet1') excel_data = read_excel(config_file, 'Sheet1') @ddt class TestLogin(unittest.TestCase): @data(*excel_data) def test_login(self, row): # row表示每次从data这个list当住取出一个数据 # 代表一组测试数据,相当于for row in data # 但不同点在于:会自动生成一个新的测试用例方法test_login_1() params_str = row['data'] params = eval(params_str) username = params['username'] pwd = params['pwd'] expected = eval(row['expected']) actual = login(username, pwd) self.assertEqual(expected, actual)
这篇关于Python-动态获取项目路径的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Python基础编程
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南