4

#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

助けていただければ幸いです。:)

4

1 に答える 1

2

テストを実行する最も簡単な方法は、 をテスト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 のメンテナーです。

于 2012-07-24T10:29:59.357 に答える