gpt4 book ai didi

python - 从 python 捕获 pytest 的退出代码

转载 作者:行者123 更新时间:2023-12-04 09:34:41 24 4
gpt4 key购买 nike

运行 python.main() 时,任何失败的单元测试都不会将退出代码 1 返回到调用测试的 python 模块。
声明 here ,运行 pytest 不会引发系统退出,但是有没有办法让失败的单元测试表现相同或允许将代码(1)返回给调用函数?

最佳答案

pytest.main()将返回其退出代码 — an ExitCode enum ,从 pytest 5.0.0 开始。如果测试失败,ExitCode.TESTS_FAILED将被退回;如果所有测试都通过,ExitCode.OK将被退回。
顺便说一句,这些枚举的整数值实际上是从终端运行时使用的退出代码。这里是 site-packages/pytest/__main__.py 的来源, 如果 python -m pytest 则执行用于调用测试:

import pytest

if __name__ == "__main__":
raise SystemExit(pytest.main())
py.test (或 pytest )入口点脚本大致相同
import re
import sys
from pytest import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

关于python - 从 python 捕获 pytest 的退出代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62648688/

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