2012-07-30 3 views
7

Django 1.3.1 프로젝트의 테스트 러너로 django-nose 1.0을 설치했습니다. 테스트 전용 모델과 관련하여 지침 on the pypi page을 따르고 있습니다. 나는 문제없이 본의 TestRunner를 사용하여 몇 달 동안 테스트를 실행 한Django-nose가 테스트 실행 중에 테스트 전용 모델을 생성하지 않음

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'

:

은 여기 내 settings.py의 TestRunner 설정입니다. 이제 추상 클래스를 테스트하려고하는데 테스트 전용 모델을 사용하고 있지만 필자가 작성한 특정 테스트에서는 오류가 발생합니다.

설명서에 따르면 테스트 중에 가져온 파일 중 하나에 테스트 클래스를 포함하면됩니다. 테스트를 'tests'폴더에두고 여러 개의 작은 테스트 파일로 나눕니다.

from django.tests import TestCase 
from myapp.models import AbstractFoo 

class Foo(AbstractFoo): 
    pass 


class TestFoo(TestCase): 
    def setUp(self): 
     self.foo = Foo.objects.create(name="Tester", 
             description="This is a test", ...) 
    ... [tests follow] 

I 설치 프로그램의 첫 번째 줄에 오류가 발생 해요 : :

DatabaseError: relation "tests_foo" does not exist 
LINE 1: INSERT INTO "tests_foo" ("name", "description", "display... 

을 내가 넣어 경우 여기 내 테스트/model_tests.py (의도적으로 작업을 이유로 이름이 변경 모델과 응용 프로그램)입니다 테스트를 중단하고 데이터베이스를 검사하면 'tests_foo'테이블 (또는 이름에 'foo'가있는 테이블)이 존재하지 않습니다.

테스트 전용 모델이로드되지 않는 이유에 대한 아이디어가 있으십니까?

+0

을 내가 지금 1.5과 같은 오류가 받고 있어요 : 당신은이 코드는 예상대로 작동합니다 두 번째 변종 https://github.com/erm0l0v/django-fake-model

내 구현을 확인할 수 있습니다. 어떻게 이걸 해결 했니? –

답변

0

당신은 모델을 만들 필요가 : 해결 방법은 GitHub의에 tests/ 폴더에

관련 문제를 __init__.py의 모든 모델을 넣어 1.3

한 장고 == 1.6 장고 코 ==로 톱 테스트 데이터베이스에서이 작업을 수행하려면 데이터베이스에 수동으로 마이그레이션을 생성하거나 테이블을 생성해야합니다.

from django.tests import TestCase 
from myapp.models import AbstractFoo 

from django_fake_model import models as f 


class Foo(f.FakeModel, AbstractFoo): 
    pass 


@Foo.fake_me 
class TestFoo(TestCase): 
    def setUp(self): 
     self.foo = Foo.objects.create(name="Tester", 
             description="This is a test", ...) 
    ... [tests follow] 
관련 문제