首页 > 解决方案 > SimpleTestCase 中不允许对“默认”的 Django 数据库查询

问题描述

我尝试运行以下测试,但它们都失败了。我不明白这个错误,因为我的视图没有包含模型。

看法

class ClassroomGradebookView(TemplateView):
    """for choosing first gradebook"""
    template_name = "gradebook/gradebookstart.html"

网址

urlpatterns = [
    path('', views.index, name='index'),
    ....
    path('gradebookstart/', views.ClassroomGradebookView.as_view(),
         name='gradebookstart'),
    ]

测试

class ClassroomGradebookTests(SimpleTestCase):

    def test_classroomgradebook_url_name(self):
        response = self.client.get(reverse('gradebook:gradebookstart'))
        self.assertEqual(response.status_code, 200)

    def test_classroomgradebook_status_code(self):
        response = self.client.get('/')
        self.assertEqual(response.status_code, 200)

错误

AssertionError: Database queries to 'default' are not allowed in SimpleTestCase subclasses. Either subclass TestCase or TransactionTestCase to ensure proper test isolation or add 'default' to gradebook.tests.ClassroomGradebookTests.databases to silence this failure.

触发错误的行是:

response = self.client.get(reverse('gradebook:gradebookstart'))
response = self.client.get('/')

标签: djangodjango-tests

解决方案


推荐阅读