Flask-Testing模块没有这样的测试方法错误

时间:2012-07-05 19:01:06

标签: python testing flask

在尝试#python和#pocoo之后来到这里。我正在为烧瓶应用程序编写单元测试,并希望测试重定向。官方的烧瓶教程没有任何相关内容,所以我尝试使用它: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

我会感激任何帮助。 :)

1 个答案:

答案 0 :(得分:2)

运行测试的最简单方法是使用unittest.main来收集测试,因为flask.ext.testing.TestCaseunittest.TestCase的子类。所有其他测试收集器,如nose,支持unittest.TestCase类应该可以工作。

unittest.main的简单示例如下所示:

import unittest

# Here your TestCases

if __name__ == '__main__':
    unittest.main()

unittest会发现您的所有测试用例和测试方法,但请注意,类和方法名称必须以test开头。

免责声明:我是Flask-Testing的维护者。