2016-11-02 2 views
0

Ich versuche meinen ersten Test für eine einfache Flask-App zu schreiben. Ich möchte einfach einen Test, der überprüft, ob die App läuft und bekommt einen 200 Antwort-Code durch Abfragen der Root-App URL '/'.Test Flask mit Flask-Testing

Wenn ich den Test ausführen ich die folgende Fehlermeldung erhalten:

raise HTTPError(req.full_url, code, msg, hdrs, fp) 
urllib.error.HTTPError: HTTP Error 404: NOT FOUND 

Dies deutet darauf hin, dass der Server ausgeführt wird, aber dass die Basis-URL nicht gefunden werden kann? Was ist los?

import json 
from urllib.request import urlopen 
from flask import Flask 
from flask_testing import LiveServerTestCase 

class MyTest(LiveServerTestCase): 

    def create_app(self): 
    app = Flask(__name__) 
    app.config['TESTING'] = True 
    return app 

    def test_flask_application_is_up_and_running(self): 
    response = urlopen(self.get_server_url()) 
    self.assertEqual(response.code, 200) 

Antwort

1

Ich empfehle die Flask Test docs lesen: Sie usally gehen nicht über das Netzwerk und HTTP Ihre Anwendungen zu testen. Instead you create a test client from flask, which you then use to do requests directly to your app.

+0

Vielen Dank, ich werde versuchen, dieses Beispiel auf der von Ihnen zitierten Seite zu verfolgen. Das Beispiel, das ich verfolgt habe, verwendete das Flask-Testing-Modul - siehe Flask-Testing Extension unter http://damyanon.net/ Kolben-Serien-Test/ –

+0

Auch sollten Sie nicht nosetest verwenden. Es ist sehr alt und seine Entwicklung hat aufgehört. Versuchen Sie, pytest. –

+0

Danke - diese Seite zitiert das gleiche Beispiel, https://pythonhosted.org/Flask-Testing/ Der einzige Unterschied ist, dass es einen Port für die App setzt, versuchte das auch nicht zu gehen. Ich werde es mit dem Link versuchen, den Sie später gesendet haben. –