gpt4 book ai didi

python - 处理硬编码路径的回归测试

转载 作者:可可西里 更新时间:2023-11-01 11:50:49 30 4
gpt4 key购买 nike

我需要扩展一个有大量硬编码路径的 python 代码
为了不弄乱一切,我想在修改之前为代码创建单元测试:它将作为我的新代码的非回归测试(没有硬编码路径)

但是由于硬编码的系统路径,我将在 chroot 树中运行我的测试(我不想污染我的系统目录)
我的问题是我只想为测试设置 chroot,这只能通过 os.chroot 以 root 权限完成(我不想以 root 身份运行测试脚本)

事实上,我只需要一个假的树目录,这样当 open('/etc/resolv.conf) 的代码检索到一个假的 resolv.conf 而不是我的系统时

我显然不想自己替换代码中的硬编码路径,因为它不是真正的回归测试

你知道如何实现吗?

谢谢

请注意,所有访问的路径都可以使用用户帐户读取

最佳答案

在您的测试设置中,您可以覆盖正在测试的模块中的内置 open,并使用您自己的从“假”目录结构中读取的版本:

import mymod
import os.path

def chroot_open(filename,*args):
filename = os.path.join("/home/you/fakeroot",filename)
return open(filename,*args)

mymod.open = chroot_open

关于python - 处理硬编码路径的回归测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4077338/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com