如何让conda run pytest命令忽略测试失败强制返回执行成功
解决方案
类Unix环境(Linux、macOS、Git Bash、WSL等)
直接在原有命令后追加|| true即可,完整写法:
conda run pytest || true
原理说明
类Unix Shell 中||为逻辑或运算符,执行规则如下:
- 若左侧
conda run pytest执行成功(返回状态码为0,即所有测试用例通过),则不会执行右侧命令,整个语句最终返回0(成功状态) - 若左侧命令执行失败(返回非0状态码,即存在测试用例不通过),则自动执行右侧的
true内置命令,true固定返回0,因此整个语句最终仍返回成功状态。
Windows环境
CMD命令提示符
写法如下:
conda run pytest || ver >nul
ver >nul会执行版本查询命令并丢弃输出,固定返回成功状态,等效于类Unix环境的true。
PowerShell
PowerShell 7及以上版本可直接使用类Unix的写法:
conda run pytest || true
低版本PowerShell使用如下写法:
conda run pytest; exit 0
你之前记忆的1 || conda run pytest写法是逻辑颠倒的,1本身是不存在的命令,执行必然失败,该写法的效果是只有1执行失败时才会运行pytest,和你需要的效果完全不符。
内容的提问来源于stack exchange,提问作者OverLordGoldDragon
相关产品推荐
相关产品推荐

