我花了整整一天的时间试图找出此错误可能来自何处,但徒劳无功。 我的测试功能如下:
def test_match_data_while_updating(self):
# TST N.1 : Match is live
# -------
match_updated_data1 = {
'match': {
'id': 1,
'status': 'not_started',
},
}
match1 = Match.objects.get(id=1)
request = self.__class__.factory.put('', match_updated_data1, format='json')
add_authentication_to_request(request, is_staff=True)
response = update_match_video(request)
self.assertEqual(Match.objects.get(id=1).status,'live')
这是我正在测试的功能的相关部分:
def update_match_video(request):
if not request.data.get('match').get('id'):
return JsonResponse({}, status=status.HTTP_400_BAD_REQUEST)
match_id = valid_data_or_error(request.data, method='PUT')['match_data']['id']
try:
match = Match.objects.get(id = match_id)
db_match_status = match.status
if db_match_status == 'live':
valid_data_or_error(request.data, method='PUT')['match_data']['status'] = 'live'
elif db_match_status == 'closed':
valid_data_or_error(request.data, method='PUT')['match_data']['status'] = 'closed'
except:
print('Match does not exist')
当我使用命令时:
$ python server/manage.py test --settings=skill.settings_test api.views.tests.test_views.ViewsTestCase
运行/ views / tests / test_views文件包含的所有测试功能(此文件仅包含一个类,即ViewsTestCase,其中包含许多测试),所有测试均成功,但是当我运行位于文件夹中的所有测试时/ api / views使用:
$ python server/manage.py test --settings=skill.settings_test api.views
我收到以下错误:
错误:test_match_data_while_updating(api.views.tests.test_views.ViewsTestCase)
回溯(最近通话最近一次):
在test_match_data_while_updating中的文件“ /home/yosra/Bureau/app/master/server/api/views/tests/test_views.py”,第226行 match1 = Match.objects.get(id = 1)
文件“ /home/yosra/Bureau/app/master/venv/lib/python3.6/site-packages/django/db/models/manager.py”,第82行,在manager_method中 返回getattr(self.get_queryset(),name)(* args,** kwargs)
在获取文件“ /home/yosra/Bureau/app/master/venv/lib/python3.6/site-packages/django/db/models/query.py”中,行399 self.model._meta.object_name
api.models.match.Match.DoesNotExist:匹配查询不存在。
我的测试数据库不为空,并且包含ID = 1的匹配实例。也没有测试功能可以从我的数据库中删除该元素。谁能告诉我这可能来自哪里?
感谢您的帮助