如何自动化执行doctest.testmod()?解析TestResults结果咨询
自动化执行doctest.testmod()及解析结果的方法
一、自动化执行testmod()
直接在脚本中调用doctest.testmod()就能自动运行模块内所有doctest测试用例。如果想让测试仅在脚本直接运行时执行(被其他模块导入时不触发),可以加上如下判断:
if __name__ == "__main__": import doctest test_results = doctest.testmod()
二、解析TestResults结果
testmod()返回的TestResults对象自带两个核心属性,直接通过属性访问就能获取测试数据:
failed:失败的测试用例数量attempted:总共执行的测试用例数量
结合这两个属性,你可以轻松实现测试结果的自动化判断,示例代码如下:
def average(values): """Computes the arithmetic mean of a list of numbers. >>> print(average([20, 30, 70])) 40.0 """ return sum(values) / len(values) if __name__ == "__main__": import doctest test_results = doctest.testmod() # 输出测试统计信息 print(f"总测试用例数: {test_results.attempted}") print(f"失败用例数: {test_results.failed}") # 自动化判断测试是否全通过 if test_results.failed == 0: print("所有测试用例执行通过!") else: print(f"有 {test_results.failed} 个测试用例失败,请检查代码逻辑。")
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

