【问题标题】:Integration test for Tornado serverTornado 服务器的集成测试
【发布时间】:2017-05-09 11:31:55
【问题描述】:

我来自 Java 背景,对 Python 完全陌生。

假设我有一个 Python 程序 hello.py 可以启动这样的网络服务器:

import tornado.web
import tornado.httpserver
import tornado.ioloop

def start_server(port, handler):
    app = tornado.web.Application([(r"/", handler), ])
    server = tornado.httpserver.HTTPServer(app)
    server.bind(port)
    server.start(0)  # autodetect number of cores and fork a process for each
    tornado.ioloop.IOLoop.instance().start()

class MyHandler(tornado.web.RequestHandler):

    def get(self):
        self.write("Hello!")

start_server(5000, MyHandler)

现在我想用 Python 为这个服务器编写一个集成测试。测试应该:

  • 运行hello.py启动服务器
  • 向 URL http://localhost:5000/hello 同步发送 HTTP GET 请求
  • 检查响应是否 == "Hello!"
  • 停止服务器

您建议如何编写这样的测试?

【问题讨论】:

标签: python integration-testing tornado


【解决方案1】:

我建议您查看tornadotest 目录。它包含所有tornado 测试,您可以使用pythonnosetests 启动这些测试。

你可以看看httpserver_test.py

【讨论】:

  • 嗯......那里有很多东西,但我没有找到我需要的测试:(也许我遗漏了一些东西。我需要一些非常简单的东西。我想编写一个 Python 脚本,它在一个单独的线程中运行我的服务器并通过 HTTP 与服务器通信。它在 Python 中可行吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-20
  • 1970-01-01
  • 2011-08-17
  • 2021-01-11
  • 2018-11-18
  • 2018-05-07
  • 1970-01-01
相关资源
最近更新 更多