【问题标题】:Python Unittest fails to start on some syntax error without mentioning source of errorPython Unittest 在没有提及错误来源的情况下无法启动某些语法错误
【发布时间】:2012-02-10 20:38:03
【问题描述】:

我正在开发一个使用flask、postgresql 和sqlalchemy 并在Eclipse 中编码的Web 应用程序。 我正在使用python unittest 来测试基本功能。

所以我在编辑我的代码时,在评论中错误地输入了∫。因为它在评论中,所以我没有费心去删除它(我知道编码,但我还是做了!)我运行了我的单元测试,它没有运行任何测试,原因很明显。但问题是我无法找到错误原因,直到我运行本地服务器然后我能够找到错误。

过去我也遇到过类似的问题,一些未知的小错误甚至导致我的测试无法开始,甚至没有告诉我错误的来源。

所以我的问题是在使用 python unittest 模块时有什么方法可以找到错误来源并避免上面提到的情况?

【问题讨论】:

    标签: python unit-testing postgresql sqlalchemy flask


    【解决方案1】:

    运行带有# ∫ 注释的basic unittest example 会出现以下错误:

      File "example.py", line 4  
    SyntaxError: Non-ASCII character '\xe2' in file x.py on line 4, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
    

    python -m unittest example 我得到了同样的异常(回溯稍长一些)。

    看来这不是一个单元测试问题。 您是否使用 Eclipse 插件来运行测试?如果是这样,请尝试从命令行运行它;如果一切正常,这可能是该插件中的一个错误。

    【讨论】:

    • 是的,当我在终端 python test.py 上运行这个命令时,它起作用了。这似乎是一个 pydev 错误。无论如何感谢您的回答。
    • 顺便说一句,Python 文件可以在顶部添加显式编码信息,请参阅:# -*- coding: utf-8 -*- 如果您碰巧使用非 ascii 字符,这应该可以防止编码错误。
    猜你喜欢
    • 2019-10-07
    • 2013-10-17
    • 1970-01-01
    • 2015-01-09
    • 1970-01-01
    • 2019-09-27
    • 2023-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多