在尝试了 #python 和 #pocoo 之后来到这里。我正在为 Flask 应用程序编写单元测试,并想测试重定向。官方 flask 教程没有任何相关内容,所以我尝试使用这个:http://packages.python.org/Flask-Testing/
这是我迄今为止测试教程应用程序的代码(应用程序代码在这里: https://github.com/mitsuhiko/flask/tree/master/examples/flaskr/ )
from flaskext.testing import TestCase
import flaskr
from flask import Flask
class FlaskrTest(TestCase):
def create_app(self):
app = Flask(__name__)
app.config['TESTING'] = True
return app
def test_add_entry(self, title, text):
resp = app.post('/add', data=dict(title='blah',
text='Blooh'), follow_redirects=True)
self.assertRedirects(resp, '/')
if __name__ == '__main__':
myTest = FlaskrTest()
myTest.test_add_entry()
这是我得到的错误:
Traceback (most recent call last):
File "flaskr_test.py", line 17, in <module>
myTest = FlaskrTest()
File "/usr/lib/python2.7/unittest/case.py", line 185, in __init__
(self.__class__, methodName))
ValueError: no such test method in <class '__main__.FlaskrTest'>: runTest
我将不胜感激任何帮助。 :)
最佳答案
运行测试的最简单方法是使用 unittest.main
来收集测试,因为 flask.ext.testing.TestCase
是 unittest.TestCase
的子类。所有其他测试收集器,如支持 nose
类的 unittest.TestCase
应该可以工作。unittest.main
的一个简单示例如下所示:
import unittest
# Here your TestCases
if __name__ == '__main__':
unittest.main()
unittest
将发现您所有的测试用例和测试方法,但请注意类和方法名称必须以 test
开头。免责声明:我是 Flask-Testing 的维护者。
关于python - Flask-Testing 模块没有这样的测试方法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11350824/