我测试时出错了,
Operations to perform:
Apply all migrations: admin, app, auth, contenttypes, sessions
Running migrations:
No migrations to apply.
我在test.py中写道
class UserModelTests(TestCase):
def test_is_empty(self):
queryset = User.objects.order_by('user_id').values()[:2]
expected = [
{'name': 'Tom', 'user_id': 1, 'nationarity': 'America', 'dormitory': 'A', 'group': 3}
]
for idx, item in enumerate(expected):
self.assertDictEqual(item, queryset[idx])
我阅读了文件和其他网站,我找到了夹具和放大器。也许需要setUp(),但我无法理解如何编写它。我该如何解决这个问题?我应该在这段代码中添加什么?
我使用命令./manage.py test
。
答案 0 :(得分:0)
您没有遇到错误,但是正在应用数据库迁移的响应(在您的情况下为非)。如果您使用./manage.py migrate
命令,您会看到相同的响应。
修改模型结构时,必须调用./manage.py makemigrations
命令。这些makemigrations
会在app/migrations
目录中创建一个迁移文件。使用这些文件
将新迁移应用于实际数据库(或恢复到以前的状态)。
消息No migrations to apply
表示尚未存在尚未应用于数据库的这些迁移文件。调用该命令时,将对INSTALLED_APPS
中列出的模块执行迁移。
如果测试已执行且断言失败,则测试错误将类似于:
Testing started at 9:45 ...
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
Failure
Traceback (most recent call last):
File "/home/edwin/git/portfolio/backend/apps/projects/tests.py", line 114, in test_project_link_datetime_modified_on_update
self.assertNotEqual(None, None)
AssertionError: None == None
Destroying test database for alias 'default'...
Process finished with exit code 1
成功的测试可能如下:
./manage.py test
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
........................
----------------------------------------------------------------------
Ran 24 tests in 0.208s
OK
如果您没有看到这些内容,则很可能无法正常执行测试。确保您已添加包含这些测试的应用已添加到INSTALLED_APPS
文件中的settings.py
。尝试以./manage.py test
或您可以使用./manage.py test <app_name>