Jac*_*cob 5 python testing pytest
我浏览了pytest网站上的文档,但没有找到使用“测试资源”的明确示例,例如在单元测试期间读取固定文件。类似于http://jlorenzen.blogspot.com/2007/06/proper-way-to-access-file-resources-in.html针对Java所描述的内容。
例如,如果我已将yaml文件签入源代码管理,那么编写从该文件加载的测试的正确方法是什么?我认为这归结为理解在类路径(PYTHONPATH?)等效的python上访问“资源文件”的正确方法。
这似乎应该很简单。有一个简单的解决方案吗?
我认为“资源文件”就是你在python中给它的任何定义(在Java中,资源文件可以与普通Java类捆绑到jar文件中,并且Java提供了库函数来访问这些信息)。
等效的解决方案可能是访问 PYTHONPATH 环境变量,将“资源文件”定义为相对路径,然后在 PYTHONPATH 中查找它。这是一个例子:
pythonpath = os.env['PYTHONPATH']
file_relative_path = os.path.join('subdir', 'resourcefile') // e.g. subdir/resourcefile
for dir in pythonpath.split(os.pathsep):
resource_path = os.path.join(dir, file_relative_path)
if os.path.exists(resource_path):
return resource_path
Run Code Online (Sandbox Code Playgroud)
此代码片段返回 PYTHONPATH 上存在的第一个文件的完整路径。