2009-11-23 4 views
2

Google App Engine에서 Django 클라이언트 클래스를 사용하여 단위 테스트를 실행하는 데 어려움을 겪고 있습니다. 내가 GAEUnit (v2.0a for Django)을 다운로드했고 그것을 테스트 프레임 워크로 사용하려고한다. (어쩌면 내가 다른 것을 사용해야하는지도 모르겠다.)Google App Engine에서 Django 뷰의 단위 테스트를하려면 어떻게해야합니까?

모든 GAEUnit 파일을 지침대로 프로젝트 루트에 복사하고 내 app.yaml 파일을 수정합니다. 나는 또한 ... 응용 프로그램으로 gaeunit를 추가 할 수 settings.py를 수정

application: myapp 
version: 1 
runtime: python 
api_version: 1 

handlers: 
- url: /static 
    static_dir: static 

- url: /.* 
    script: django_bootstrap.py 

- url: /test.* 
    script: gaeunit.py 

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.contenttypes', 
    'gaeunit', 
) 

내 단위 테스트 클래스에있는 (settings.py 니펫) 다음과 같이 현재 애플리케이션 제목을 찾습니다

import unittest 

class Test(unittest.TestCase): 

    def testName(self): 
     self.assertTrue(False) 

if __name__ == "__main__": 
    #import sys;sys.argv = ['', 'Test.testName'] 
    unittest.main() 

을 그러나, 나는 http://localhost:8080로 이동하여 내 응용 프로그램을 실행하려고 할 때 다음과 같은 오류와 함께 실패 : (매우 간단) 다음과 같이 '테스트'폴더 보인다

ViewDoesNotExist at/
Could not import gaeunit.gaeunit. Error was: No module named gaeunit 

gaeunit.py가 해당 폴더에 존재합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

0

나는 여기서 무엇이 잘못되었는지 알아낼 수 있었다.

  1. , URL 애플리케이션 제목을에서 : /.* (그렇지 않으면/테스트 URL이 도착하기 전에 /.*에 일치 할 것이다 : URL 전에 을해야했다 /test.* 나는 두 개의 실수를 /test.* 핸들러로)
  2. 모든 파일을 GAEUnit 패키지에서 프로젝트 루트로 복사하십시오! GAEUnit 폴더에는주의를 기울이지 않으면 urls.py 파일이 포함되어 있습니다. 제 경우에는 이런 일이있었습니다. 나는 원래의 urls.py를 복원했다.
  3. 당신이 response.template 또는 response.context 속성에 액세스하려는 경우, 당신은) 당신이 (django.test.utils.setup_test_environment를 부르는를 확인해야합니다, 장고 테스트 클라이언트 작업, 그렇지 않으면 템플릿 상황은 Nothing입니다. 내 테스트 모듈에서 이것을 바로 아래쪽에서 호출합니다.

결과 : 작업 단위 테스트!

+0

urls.py에 (r '^ test', include ('gaeunit.urls') 포함)을 복사 할 수 있습니다. 또한 gaeunit.py에서 테스트 경로를 변경해야합니다. _LOCAL_DJANGO_TEST_DIR = 'test' – dhaval

관련 문제