使用Python框架自动测试路由

使用Python框架自动测试路由,python,testing,routes,bottle,Python,Testing,Routes,Bottle,我想构建一种自动化的方法来测试Python/Battle web应用程序中的所有路由,因为我目前有大约100条路由。最好的方法是什么 瓶子的创建者使用,这是一个专门为单元测试Python WSGI应用程序而设计的框架 此外,还有一个专门用于瓶子的测试工具。我自己还没有使用过这个软件,所以我不能说它的工作情况如何,但是,截至发布此回复时,它似乎得到了积极的维护 我建议看看其中一个或两个,然后试一下。如果你发现自己有更多关于如何与其中一个正确集成的问题,请发布另一个问题 祝你好运 我推荐;它功能齐全

我想构建一种自动化的方法来测试Python/Battle web应用程序中的所有路由,因为我目前有大约100条路由。最好的方法是什么

瓶子的创建者使用,这是一个专门为单元测试Python WSGI应用程序而设计的框架

此外,还有一个专门用于瓶子的测试工具。我自己还没有使用过这个软件,所以我不能说它的工作情况如何,但是,截至发布此回复时,它似乎得到了积极的维护

我建议看看其中一个或两个,然后试一下。如果你发现自己有更多关于如何与其中一个正确集成的问题,请发布另一个问题

祝你好运

我推荐;它功能齐全,使用非常方便。下面是一个完整的工作示例,演示了一个简单的测试:

from bottle import Bottle, response
from webtest import TestApp

# the real webapp
app = Bottle()


@app.route('/rest/<name>')
def root(name):
    '''Simple example to demonstrate how to test Bottle routes'''
    response.content_type = 'text/plain'
    return ['you requested "{}"'.format(name)]


def test_root():
    '''Test GET /'''

    # wrap the real app in a TestApp object
    test_app = TestApp(app)

    # simulate a call (HTTP GET)
    resp = test_app.get('/rest/roger')

    # validate the response
    assert resp.body == 'you requested "roger"'
    assert resp.content_type == 'text/plain'


# run the test
test_root()
从瓶子导入瓶子,响应
从webtest导入TestApp
#真正的网络应用
app=瓶子()
@app.route(“/rest/”)
def根目录(名称):
“演示如何测试瓶子路线的简单示例”
response.content_type='text/plain'
return['yourequested“{}'。格式(名称)]
def test_root():
''测试获取/'''
#将真实应用程序包装到TestApp对象中
测试应用程序=测试应用程序(应用程序)
#模拟调用(HTTP GET)
resp=test_app.get('/rest/roger')
#验证响应
assert resp.body=='您请求了“罗杰”'
assert resp.content_type=='text/plain'
#运行测试
测试_根()

在这种情况下,我必须运行WSGI服务器吗?目前,我正在使用
unittest
+
bottle
,但没有运行WSGI服务器。我不知道如何将路由的动态部分放到视图中。不,您不需要服务器。WebTest取代了服务器。