2013-04-02 3 views
0

의 TestCase에서 쿼리를 만드는 : 나는 또한 변화 시도IndexError하면서 다음과 같이 내가 아주 간단한 검사를

Traceback (most recent call last): 
    File "/home/amyth/Projects/test/trips/tests.py", line 8, in setUp 
    self.trip = models.Trip.objects.order_by('?')[0] 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 207, in __getitem__ 
    return list(qs)[0] 
IndexError: list index out of range 

: 내가 테스트를 실행할 때마다

import models 
from django.test import TestCase 

MyViewTest(TestCase): 
    def setUp(self): 
     self.trip = models.Trip.objects.order_by('?')[0] 

    def test_something(self): 
     # Blah Blah 

그것은 아래에 언급 된 오류가 발생합니다 models.Trip.objects.all()[0]에 대한 쿼리 및 여전히 같은 오류가 throw됩니다. 이상한 점은 위의 쿼리 중 하나를 쉘에서 사용하면 효과가 있다는 것입니다. 그렇다면 테스트에서 어떻게 작동하지 않습니까?

답변

3

django의 테스트에서 documentation을 참조하십시오. 새로운 '테스트'데이터베이스가 생성되고 '프로덕션'데이터베이스가 사용되지 않습니다. TestCase setUp 메소드에서 여행 항목을 작성하지 않는 한 비어 있습니다. 또한 각 TestCase가 실행 된 후에 데이터베이스가 잘 리므로 여러 TestCases에서 Trip을 사용해야하는 경우 각 TestCase setUp에 데이터베이스 항목을 만들어야합니다.

관련 문제