Ric*_*d B 6 python pytest python-3.x
有人能告诉我在 pytest 中处理资源文件的正确方法是什么吗?
我习惯在包(src)目录下创建一个资源目录,并在测试分支下创建另一个目录
root---package---resource_dir
| |-file1.py
| |-file2.py
|
|-test-- resource_dir-
| |-config1.csv
| |-config2.csv
|-test1.py
|-test2.py
Run Code Online (Sandbox Code Playgroud)
如果我想从测试中访问这些文件,Pythonic 的方式是什么?到目前为止,我一直在使用相对文件路径,但该解决方案并不是很好。有没有类似于Java资源解决方案的解决方案?
我发现做到这一点的一种方法是使用 pkg_resources。它能够在您的包中搜索文件。因此,例如,如果您想打印测试资源目录中的文件的内容,您可以执行以下操作:
import pkg_resources
config_file = open(pkg_resources.resource_filename('test.resources','config.csv'),'r')
for line in config_file:
print(line)
print(">>>End of File")
Run Code Online (Sandbox Code Playgroud)
请注意,所有目录和子目录都需要打包(即init .py 文件必须存在,即使它是空的)。
| 归档时间: |
|
| 查看次数: |
5979 次 |
| 最近记录: |