python - 运行单个测试有效,但运行多个测试失败 - Flask 和 Pytest
问题描述
这真的很奇怪。我有以下简单的烧瓶应用程序:
- root
- myapp
- a route with /subscription_endpoint
- tests
- test_az.py
- test_bz.py
test_az.py 和 test_bz.py 看起来都一样。有一个设置(取自https://diegoquintanav.github.io/flask-contexts.html),然后是一个简单的测试:
import pytest
from myapp import create_app
import json
@pytest.fixture(scope='module')
def app(request):
from myapp import create_app
return create_app('testing')
@pytest.fixture(autouse=True)
def app_context(app):
"""Creates a flask app context"""
with app.app_context():
yield app
@pytest.fixture
def client(app_context):
return app_context.test_client(use_cookies=True)
def test_it(client):
sample_payload = {"test": "test"}
response = client.post("/subscription_endpoint", json=sample_payload)
assert response.status_code == 500
运行 pytest,将运行这两个文件,但 test_az.py 会成功,而 test_bz.py 会失败。http请求会返回404错误,表示test_bz在app中找不到路由。如果我单独运行它们,那么它们的展位就会成功。这很奇怪!似乎第一个测试在某种程度上影响了第二个测试。
我实际上添加了第三个测试 test_cz.py,它也会失败。所以只有第一个会运行。我觉得这与那些固定装置有关,但不知道在哪里看。
解决方案
为夹具创建一个conftest.py
例如客户端夹具并在两个测试中使用相同的夹具?
现在,如果您说提供的代码是另一个文件中相同的测试示例,那么您正在为客户端创建 2 个固定装置。我会首先清理它并创建一个conftest.py
包含所有固定装置的 1,然后在您的测试中使用它们,这可能会对您有所帮助。
还可以查看如何使用pytest
Flask 文档中的描述
推荐阅读
- colors - HSB 颜色选择器
- google-sheets - 引用相对于另一个单元格的单元格 Google 表格
- c# - .Net Standard Microsoft.Win32 不包含 OpenFileDialog() 方法
- html - 在容器上使用 css position absolute 时,正文背景颜色隐藏
- html - 如何将输入日期显示为 dd-mm-yyy
- hbase - HBase:一台区域服务器每秒拥有所有请求
- php - Symfony 5.1 到 5.2 单元测试不通过保护验证器进行验证
- java - 来自 wsdl 的生成类插件不起作用
- python - 在 VSCode 中运行而不调试会自动更改终端
- python - 为什么我的简单 tkinter 动画滞后?