【问题标题】:Testing Flask with Flask-Testing使用 Flask-Testing 测试 Flask
【发布时间】:2016-11-02 10:36:34
【问题描述】:

我正在尝试为一个简单的 Flask 应用程序编写我的第一个测试。我只是想要一个测试来检查应用程序是否正在运行并通过查询根应用程序 url '/' 来获取 200 响应代码。

当我运行测试时,我收到以下错误:

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

这表明服务器正在运行但找不到基本网址?怎么回事?

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)

【问题讨论】:

    标签: python unit-testing python-3.x flask


    【解决方案1】:

    我建议阅读 Flask 测试文档:您通常不通过网络和 HTTP 来测试您的应用程序。 Instead you create a test client from flask, which you then use to do requests directly to your app.

    【讨论】:

    • 谢谢,试一试-我还尝试按照您引用的页面上的示例进行操作,我所遵循的示例使用了 Flask-Testing 模块-请参阅damyanon.net/flask-series-testing的 Flask-Testing Extension /跨度>
    • 另外,你不应该使用nosetest。它非常古老,它的发展已经停止。试试 pytest。
    • 谢谢 - 这个页面引用了相同的例子,pythonhosted.org/Flask-Testing 唯一的区别是它为应用程序设置了一个端口,试过了也不行。稍后将尝试使用您发送的链接。
    • 另外我开始使用nosetests的原因是因为我想要Travis CI支持的东西,他们的文档提到nosetests或者只做测试docs.travis-ci.com/user/languages/python
    猜你喜欢
    • 2022-12-02
    • 2016-11-05
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    相关资源
    最近更新 更多