为何pytest.main会返回整数或ExitCode类型值?
pytest.main 返回整数的场景
旧版本兼容逻辑:在pytest 5.0版本之前,
ExitCode枚举类还未被引入,此时pytest.main()直接返回代表退出状态的整数。即使在新版本中,你也可以通过int()强制转换ExitCode枚举值得到对应的整数(比如int(ExitCode.OK)会得到0)。自定义插件/钩子修改返回值:如果你的测试环境里有自定义插件,或者通过
pytest_configure这类钩子函数手动修改了退出状态,有可能会直接返回整数值而非ExitCode枚举对象。部分第三方插件为了兼容旧代码逻辑,也可能会返回原始整数。特殊运行场景:在一些非标准的运行模式下(比如将pytest嵌入到其他Python程序中并自定义处理流程),pytest可能会直接返回整数退出码,但这种情况比较罕见,标准测试场景下基本都会返回
ExitCode枚举。
附ExitCode与对应整数的映射关系:
ExitCode.OK→ 0(所有测试通过)ExitCode.TESTS_FAILED→ 1(存在测试失败)ExitCode.INTERRUPTED→ 2(测试被中断)ExitCode.INTERNAL_ERROR→ 3(pytest内部错误)ExitCode.USAGE_ERROR→ 4(命令行参数使用错误)
内容的提问来源于stack exchange,提问作者FluidMechanics Potential Flows
相关产品推荐
相关产品推荐

