我希望能够使用现有的测试数据库来运行我的测试,并且每次我想运行测试时都不会让Django创建和删除数据库.这可能吗?
这是我在下面提到的 views.py 的测试功能:
def test_operation_page(self):
url = reverse('operation')
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'abc.html')
self.assertContains(response, '<b>BOOK id having certain title:</b>')
Run Code Online (Sandbox Code Playgroud)
这是我在测试视图时遇到的错误
断言错误:SimpleTestCase 子类中不允许对“默认”的数据库查询。子类化 TestCase 或 TransactionTestCase 以确保正确的测试隔离或将“默认”添加到 home.tests.TestViews.databases 以消除此故障。
这是我的views.py
def operation(request):
queryset=Mytable.objects.filter(title="The Diary of Virginia Woolf Volume Five: 1936-1941").values('bookid')
textset=list(Mytable.objects.order_by('-bookid').values('title'))
context={
'key1' : queryset,
'key2' : textset
}
return render(request,'abc.html',context)
Run Code Online (Sandbox Code Playgroud)
这是我的 urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('',v.index,name='index'),
path('abc/',v.operation,name='operation')
Run Code Online (Sandbox Code Playgroud)
]