gpt4 book ai didi

python - Flask-SQLAlchemy 单元测试运行两次

转载 作者:行者123 更新时间:2023-11-28 20:50:56 28 4
gpt4 key购买 nike

我的项目是这样设置的:

- proj/
- proj.py
- views.py
- tests.py
- models.py
- settings.py
- setup.py

proj.py 中,我定义了 appdb:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

from proj import settings

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = settings.DATABASE
db = SQLAlchemy(app)

views 只包含应用程序的 Hook 。 models 包含 SQLAlchemy 模型。测试的相关部分:

from flask import Flask
from flask_testing import (
TestCase,
LiveServerTestCase,
)

class SqlalchemyUnittest(TestCase):

SQLALCHEMY_DATABASE_URI = "sqlite://"
TESTING = True

def create_app(self):
proj.app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///'
proj.app.config['PRESERVE_CONTEXT_ON_EXCEPTION'] = False
proj.app.config['TESTING'] = True
proj.app.config['DEBUG'] = True
proj.app.testing = True
proj.app.debug = True
return proj.app

def setUp(self):
proj.db.create_all()

def tearDown(self):
proj.db.session.remove()
proj.db.drop_all()

class TestSomething(SqlalchemyUnittest):

def test_something(self):
self.assertEqual(1, 1)

然后在实际执行中...

test_something (proj.tests.TestSomething) ... ok
test_something (proj.tests.TestSomething) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.010s

OK

奇怪的是,在某些测试中,他们通过了一次运行,但在另一次运行中失败了,尽管测试独立于环境(例如数据库状态)。似乎有 .pyc 文件卡在周围,但我已经删除了所有 .pyc 文件和 __pycache__ 目录,但仍然得到同样的结果。

有什么想法吗?谢谢。

tl;dr Python 单元测试运行两次,有时会给出不同的结果。

最佳答案

我认为问题在于旧的 pyc 文件和 pycache 目录仍然存在。

删除它们似乎可以解决问题。

关于python - Flask-SQLAlchemy 单元测试运行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47296999/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com