gpt4 book ai didi

android - 为什么 doctest 在 qpython3 中不起作用

转载 作者:行者123 更新时间:2023-11-29 01:11:38 24 4
gpt4 key购买 nike

我正在尝试在 qpython 中使用 doctest。但是脚本没有运行,在 PC 环境下它没问题。

与PC环境下的my脚本只有两行不同:进口sl4a机器人 = sl4a.Android()

在qpython中运行脚本后,可以看到docctest的log,但是测试用例好像没有测试过。我收到的消息是:11 项没有测试:...11 个项目中的 0 个测试。0 个通过,0 个失败。测试通过

我错过了什么重要的事情吗?感谢您的帮助!

最佳答案

那是因为 qpython 在 (-OO) 上运行带有优化的 python,它删除了文档字符串,所以 doctest 看不到任何东西。下面的技巧可以让你恢复几乎所有的功能。基本上,它只是用 ast 模块解析源文件以获取文档字符串,然后放入 __test__ 字典中。

def setupDoctest():
global __test__
import ast
__test__ = {}
parsed = ast.parse(open(__file__).read(), "doctest")
doctypes = ast.Module, ast.FunctionDef, ast.ClassDef
for node in ast.walk(parsed):
if isinstance(node, doctypes):
d = ast.get_docstring(node, True)
if d:
__test__[getattr(node, "name", "module")] = d

只需在调用 doctest.testmod 之前调用它,它将运行文档字符串。

关于android - 为什么 doctest 在 qpython3 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42604442/

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