首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么doctest在qpython3中不起作用

为什么doctest在qpython3中不起作用
EN

Stack Overflow用户
提问于 2017-03-05 12:12:03
回答 2查看 99关注 0票数 2

我正在尝试在qpython中使用doctest。但是脚本不起作用,这在PC环境下是可以的。

它与PC环境中的my脚本只有两行不同: import sl4a droid = sl4a.Android()

在qpython中运行脚本后,我可以看到docctest的日志,但测试用例似乎没有经过测试。我得到的消息是: 11个项目没有测试:……11个项目中0个测试。0通过,0失败。测试通过

我错过了什么重要的东西吗?谢谢你的帮忙!

EN

回答 2

Stack Overflow用户

发布于 2018-07-26 13:01:38

这是因为qpython在(-OO)上运行python时会进行优化,这样会删除文档字符串,所以doctest什么也看不到。下面的技巧可以让你恢复几乎所有的功能。基本上,它只是使用ast模块解析源文件以获取文档字符串,然后将其放入__test__字典中。

代码语言:javascript
复制
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之前调用它,它就会运行文档字符串。

票数 1
EN

Stack Overflow用户

发布于 2018-07-30 02:24:18

也许你找到了一个解决方案,但前几天我对QPython有过类似的体验。似乎你还不能在控制台中使用QPython的播放器或Pyjnius。将脚本作为Kivy应用程序运行,可以导入Plyer或Pyjnius。尝试添加以下行:

代码语言:javascript
复制
#-*-coding:utf8;-*-
#qpy:2
#qpy:kivy
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42604442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档