我为一个django应用程序设置了大约100个单元测试,后来发现每个单元测试运行都在我的本地数据库中创建测试用户,而不是测试数据库。知道为什么吗?
apps/user/tests/factories.py
class CompanyFactory(factory.django.DjangoModelFactory):
class Meta:
model = Company
title = fake.name()
class UserFactory(factory.django.DjangoModelFactory):
class Meta:
model = User
auth0_id = fake.random_number()
email = "unit_test_user@cart.com"
company = SubFactory(CompanyFactory)
当运行一个像这样使用工厂的测试时,假用户被持久化在本地数据库中。
有谁知道为什么可能会发生这种行为?
下面是我的数据库在本地设置中的样子。
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql_psycopg2",
"NAME": "mia",
"USER": "mia_dev",
"PASSWORD": "test123",
"HOST": "localhost",
"PORT": 5432,
而且单元测试在测试运行期间似乎使用了正确的数据库,将 "test "追加到现有的本地数据库中。
(Pdb) from django.db import connection
(Pdb) connection.settings_dict['NAME']
'test_mia'