Flask教程:http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-vii-unit-testing
SOURCE
这次课首先添加了404.html和500.html错误页面;然后配置通过邮件和文件记录日志;用重复nickename为例讲了问题解决办法;最后写了个单元测试框架。
补充内容 最后添加了测试覆盖范围检查工具; Flash应用性能分析。
404和500错误页面
首先设置视图app/views.py
页面模板
日志邮件和日志文件
添加打开用户页面的链接__init__.py:
当在run.py中设置app.run(debug=False)
,出现错误不会输出给客户(浏览器)。
[NOTE] 使用python的smtp模块把发送邮件在控制台中输出:
python -m smtpd -n -c DebuggingServer localhost:25
解决nickname重复的问题
在app/views.py的after_login中添加nickname = User.make_unique_nickname(nickname)
:
为用户类中添加make_unique_nickname(nickname)。 app/models.py
对于用户配置文件编辑页面中,如果用户自己输入的用户已经存在,那么给出重新输入提示。主要是覆写表单验证方法 app/forms.py
记得更新编辑页面的视图设置app/views.py
更新编辑页面模板,显示错误信息。app/templates/edit.html
单元测试
运行单元测试flask/Scripts/python tests.py,如果测试用例都通过,显示类似这样:
$ flask/bin/python test.py
..
----------------------------------------------------------------------
Ran 2 tests in 0.057s
OK
测试范围覆盖
查看这里的Test Coverage部分。
应用性能分析
查看这里的Profiling for performance部分。
Python自带了性能分析工具cProfile
Flask有一个扩展为其提供应用性能分析Werkzeug
使用下面的profile.py替换run.py,启动应用就可以获得应用分析报表了。