You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用doctest模块时,故意错误的测试用例未被检测出,原因何在?

问题原因分析

你的代码里存在一个关键问题:函数的docstring写在了return语句之后。

在Python中,函数的docstring必须紧跟在函数定义的下一行,作为函数的第一个语句。而你现在的代码里,return语句先执行了,后面的三重引号字符串根本不会被识别为函数的docstring——因为函数在执行到return时就直接返回了,后续的代码(包括那个字符串)永远不会被执行,自然也不会被doctest读取到。

doctest模块是通过读取函数、类或模块的docstring来查找测试用例的,既然它找不到你的测试用例,自然就不会检测到预期结果的错误,也就提示没有错误了。

修正后的代码示例

把docstring移到return语句之前,放在函数定义的第一行代码位置:

import doctest 

def areaTriangulo(base, altura):
    """
    funcion que nos devuelve el area de un triangulo
    >>> areaTriangulo(4,5)
    'El area del triangulo es: 20.0'
    """
    return 'El area del triangulo es: '+str((base*altura)/2)

doctest.testmod()

这时候运行代码,doctest就能读取到测试用例,发现实际返回的是'El area del triangulo es: 10.0',和你设置的预期结果'El area del triangulo es: 20.0'不符,就会抛出错误提示了。

内容的提问来源于stack exchange,提问作者Antonio delasheras

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 16:07:50