hylang/hy官方仓库如何对.hy文件运行pytest?是否使用自定义插件?
hylang/hy 仓库运行.hy文件pytest测试的实现逻辑
- 官方仓库测试.hy文件时没有使用任何第三方Hy相关pytest插件,提到的pytest-hylang、hytest都不在它的测试依赖列表里,整套测试适配逻辑都是仓库自己内置实现的。
- 具体实现没有复杂封装,逻辑非常简单:
- pytest启动加载配置的阶段,会先打开Hy自带的导入钩子:Hy本身安装后就支持让Python解释器直接识别、导入.hy后缀的源码文件,只是默认不会自动开启这个能力,测试启动时先把这个钩子注册上,后面加载.hy文件就和加载普通.py文件没有区别。
- 仓库测试目录下的conftest配置里写了轻量的pytest收集规则钩子,把
.hy后缀加入测试文件的扫描范围,只要文件名符合pytest默认的测试命名规范(比如test_*.hy、*_test.hy),就会被当成测试文件处理,文件里写的测试函数、测试类、fixture、参数化用例都能被pytest正常识别,断言、跳过、标记这些常规pytest功能也都能正常用,执行流程和普通.py测试文件完全一致。
- 实际跑测试的命令就是最常规的
pytest tests/,不需要加任何额外的插件启动参数,适配逻辑是跟着仓库的测试配置走的,pytest启动时会自动加载。 - 这套内置的适配逻辑只服务于Hy自身的仓库测试,没有抽成独立的第三方插件发布,和外部流传的同名Hy测试插件没有代码关联。
内容的提问来源于stack exchange,提问作者syvlorg
相关产品推荐
相关产品推荐

