为什么 doctest 在 Qpython3 中不起作用



我正在尝试在qpython中使用医生。但是该脚本不起作用,在PC环境中可以。

与PC Enviroment中的My脚本不同只是两行:导入SL4Adroid = sl4a.android()

在Qpython中运行脚本后,我可以看到Docctest的日志,但是测试案例似乎没有进行测试。我得到的味精是:11个项目没有测试:...在11个项目中进行0个测试。0通过,0命中。测试通过

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

那是因为Qpython在(-OO)上进行了优化的python,它可以删除Docstrings,因此Doctest不会看到任何东西。以下技巧几乎可以使您所有功能回来。基本上,它只是用AST模块解析源文件以获取DOCSTRINGS,然后将其放入__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之前,请打电话给它,它将运行docstrings。

也许您找到了解决方案,但是前几天我对Qpython也有类似的经历。似乎您还不能(尚未)使用Qpython在控制台中使用播放器或Pyjnius。作为Kivy应用程序运行脚本会导入Plyer或Pyjnius工作。尝试添加以下行:

#-*-coding:utf8;-*-
#qpy:2
#qpy:kivy

相关内容

  • 没有找到相关文章

最新更新