gpt4 book ai didi

python - 为 python setuptools 入口点插件编写测试用例

转载 作者:行者123 更新时间:2023-12-04 11:33:15 25 4
gpt4 key购买 nike

我构建了一个 python 应用程序(“主机”应用程序),它定义了一个 setuptools 入口点,以便它可以扩展。然后插件作者必须将以下内容添加到他们的 setup.py 中文件:

setup(
# ...
entry_points = {
'myapp.plugins':
['plugin_1 = <foo.plugin.module>:<plugin-install-func>']
}
)

为了测试我的设置,我必须
  • 构建一个虚拟车轮包,
  • 使用 pip安装它,
  • 将新包的文件夹附加到 sys.path并调用 pkg_resources.working_set.add_entry(package_dir) [*],
  • 只有这样我才能检查预期的行为(运行 TC),
  • 使用 pip卸载软件包,然后
  • 最后从 sys.path 中删除已安装的包文件夹,

  • 如果必须验证不同的功能,则每个测试用例都需要一个单独的包。
    整个测试装置相当冗长和笨拙。

    是否有更优雅的方式为 setuptools 编写测试用例?入口插件?

    [*] 注意:使用 pip install -e <plugin-package> 在开发模式下安装轮子或使用 pip*不会激活插件 在同一个解释器上在 Linux 上;或者至少不是没有在 sys.path 中附加包文件夹.
    在 Windows 上,上述问题仅在开发模式下存在。

    最佳答案

    我遇到了同样的问题,并通过一个肮脏的黑客来解决,以构建和“pip install”插件包进行测试,进入 tox 的环境并在该环境中运行测试。

  • 一个测试脚本做脏黑客,即构建和安装一个车轮包并运行测试:https://github.com/ssato/yamllint-plugin-example/blob/master/tests/test_plugin.sh
  • 毒物配置:https://github.com/ssato/yamllint-plugin-example/blob/master/tox.ini
  • 关于python - 为 python setuptools 入口点插件编写测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47625482/

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