Python单元测试在某些语法错误时无法启动且未提及错误来源
我正在用Flask、PostgreSQL和SQLAlchemy开发一个网页应用,代码是在Eclipse里写的。为了测试基本功能,我使用了Python的unittest。
有一次,我在编辑代码时不小心在注释里输入了一个符号∫。因为它是在注释里,所以我没在意去删掉它(我知道编码的事,但还是犯了这个错误!)。我运行unittest时,显然没有任何测试能执行。不过,问题是我在本地服务器上运行之前,根本找不到错误的原因,直到我启动了本地服务器,才发现了错误。
我过去也遇到过类似的问题,有些不知名的小错误会让我连测试都无法开始,而且还不告诉我错误的来源。
所以我想问,有没有什么办法可以在使用Python的unittest模块时找到错误的来源,避免像上面提到的这种情况?
1 个回答
3
运行一个基本的单元测试示例,并添加了一个# ∫
注释后,我遇到了以下错误:
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插件来运行测试吗?如果是的话,试试从命令行运行;如果这样可以正常工作,那可能就是这个插件的一个bug。