运行Nox测试时出现“Fixture 'session' not found”错误求助
解决Nox session被识别为pytest fixture的问题
你的代码本身没有问题,错误原因是你把noxfile.py当成pytest测试文件直接运行了——PyCharm默认用pytest执行它,所以会把函数参数session当成pytest的fixture去查找,而这个session是Nox框架自动注入的对象,和pytest fixture无关。
解决步骤:
命令行直接运行(最直接)
打开终端切换到项目根目录,执行:noxNox会自动识别noxfile.py,执行你定义的
testssession,此时session对象会被正确注入,你可以正常调用session.install()、session.run()等方法。PyCharm中配置正确的运行方式
- 打开「Run/Debug Configurations」,点击「+」选择「Python」
- 配置项设置:
- Script path:填入你的nox可执行文件路径(终端执行
which nox可查看,比如虚拟环境下的venv/bin/nox) - Working directory:设置为项目根目录
- Script path:填入你的nox可执行文件路径(终端执行
- 保存配置后运行,即可用Nox而非pytest执行noxfile.py
额外注意:
不要将noxfile.py放在pytest默认扫描的测试目录(如tests/),也不要给它加test_前缀,避免PyCharm误识别为测试文件。
内容的提问来源于stack exchange,提问作者Diana Cazacu
相关产品推荐
相关产品推荐

