ale*_*cxe 5 python testing pytest
我一直在调试一个奇怪的 pytest 启动问题,并想检查是否有任何插件导致了问题。
是否可以启动 pytest 并要求它不加载任何插件?
从我在文档中看到的,有一种方法可以仅按名称关闭特定插件。
在评论中发布推荐的解决方案:
python -c "import pkg_resources; print(' '.join('-p no:' + ' '.join(dist.get_entry_map(group='pytest11').keys()) for dist in pkg_resources.working_set if dist.get_entry_map(group='pytest11')))" | xargs pytest
Run Code Online (Sandbox Code Playgroud)
这看起来有点神奇,但是,如果分析和分解,它开始变得更有意义:
pkg_resourcessetuptools是允许访问包资源文件、配置和安装配置的一部分.get_entry_map()返回“入口点”对象的字典pytest11入口点,因为这是Pytest 本身用来发现插件的入口点-p no:命令行参数中,这是 Pytest 禁用插件的方法受到这个答案的启发。