如何告诉 Configparser 打开与模块同名的配置文件,打开它?

发布于 2024-12-18 18:30:07 字数 289 浏览 3 评论 0原文

我正在使用Python 的unittest 编写一个测试框架。我有单独的模块用于测试应用程序的不同部分(part1-part1.py、part2-part2.py 等)。我想创建一个辅助模块,它将读取每个模块的配置设置,配置文件名与模块名称相同(part1.py - part1.conf、part2.py - part2.conf)。配置文件将与模块驻留在同一文件夹中。 当我运行part1.py时,我需要告诉测试它们的配置位于part1.conf中。我该怎么做? 此帮助程序模块不一定与测试模块位于同一文件夹中。 我不想使用鼻子,因为我希望尽可能少的外部依赖。

I'm writing a testing framework using Python's unittest. I have separate modules for separate parts of the tested application (part1 - part1.py, part2 - part2.py etc.). I want to create a helper module, which will read configuration settings for each of the modules, with the config file name being the same as the module name (part1.py - part1.conf, part2.py - part2.conf). Config files will reside in the same folder as the modules do.
When I run part1.py I need to tell the tests that config for them is in part1.conf. How do I do that?
This helper module will not necessarily reside in the same folder as the test modules.
I do not want to use nose because I want to have as little external dependencies as possible.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不奢求什么 2024-12-25 18:30:07
def module_config(mod):
    '''Loads the config residing next to the module.'''
    import configparser, os.path
    cp = configparser.ConfigParser()
    cp.read_file(open(os.path.splitext(mod.__file__)[0] + '.conf'))
    return cp

# load config for some module
import some_module
module_config(some_module)

# load config for current module
module_config(sys.modules(__name__))
def module_config(mod):
    '''Loads the config residing next to the module.'''
    import configparser, os.path
    cp = configparser.ConfigParser()
    cp.read_file(open(os.path.splitext(mod.__file__)[0] + '.conf'))
    return cp

# load config for some module
import some_module
module_config(some_module)

# load config for current module
module_config(sys.modules(__name__))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文