2014-07-24 7 views
0

나는 장고에 사이트를 개발하고있다. 나는 대부분의 문제가 연금 테스트 방법을 사용하여 발견 할 수 있다고 생각한다. 하지만 (대부분의 경우) 모든 앱, 모든보기에 대해 응답 코드를 확인하는 테스트를 작성하고 모든 URL은 매우 지루합니다 (예 : 소수의 사이트를 병렬로 개발할 때). 나는 질문이있다 : 어떻게이 과정을 자동화 할 수 있는가, 장고를위한 몇 가지 일반적인 테스트를 생성하는 몇 가지 완벽한 솔루션이 존재할 수 있습니다.장고에 대한 일반적인 테스트를 생성

감사합니다.

+0

당신이 사용하는 경우에 대한 계층 장고 단위 테스트 클래스 (TestCase의 서브 클래스) enter image description here 계층 장고 단위 테스트 클래스의

: 장고 몇이 기본 클래스의 확장을 제공 sublimetext 사용자 정의 스 니펫을 만들어 테스트를 생성 할 수 있습니다. 스 니펫에 대한 자세한 내용은 http://courses.tutsplus.com/courses/perfect-workflow-in-sublime-text-2 –

답변

0

모범 사례 :이 휴식 할 수있는 경우

  • , 그것을 테스트해야합니다. 여기에는 모델, 뷰, 양식, 템플릿, 유효성 검사기 등이 포함됩니다.
  • 각 테스트는 일반적으로 하나의 기능 만 테스트해야합니다.
  • 간단하게 유지하십시오. 기타 테스트 위에 테스트를 작성하고 싶지는 않습니다. 프로덕션으로 푸시하기 전에 코드가 저장소 및 준비 환경에서 PULL 또는 PUSH 될 때마다 테스트를 실행하십시오.
  • 장고의 최신 버전으로 업그레이드 : 로컬

    -upgrade, 테스트 스위트 -run

    ,

    수정 - 버그의 REPO 및 준비에

    -push , 그리고

    코드를 발송하기 전에 다시 스테이징하십시오.

https://realpython.com/blog/python/testing-in-django-part-1-best-practices-and-examples/

장고 테스트를 작성할 때 유용하게 작은 도구 세트를 제공합니다.

테스트 클라이언트 테스트 클라이언트가 당신의 의견을 테스트하고 프로그래밍 방식 장고 - 전원이 공급되는 응용 프로그램과 상호 작용 할 수 있도록 더미 웹 브라우저 역할을하는 파이썬 클래스입니다. 당신이 테스트 클라이언트로 할 수있는 것들 중 일부는 다음과 같습니다

  • 시뮬레이션은 GET과 URL에 POST 요청 및 응답 관찰 - 페이지로 낮은 수준의 HTTP에서 모든 (결과 헤더 및 상태 코드) 함유량.
  • 리디렉션 체인 (있는 경우)을 확인하고 각 단계에서 URL 및 상태 코드 을 확인하십시오.
  • 특정 Django 템플릿 에 의해 주어진 요청이 특정 값을 포함하는 템플릿 컨텍스트로 렌더링되는지 테스트합니다.

개요 및 빠른 예를

는 django.test의 인스턴스를, 테스트 클라이언트를 사용합니다.클라이언트 및 검색 웹 페이지는이 예에서 알 수

from django.test import Client 
c = Client() 
response = c.post('/login/', {'username': 'john', 'password': 'smith'}) 
response.status_code 

200

response = c.get('/customer/details/') 
response.content 

'<!DOCTYPE html...' 

, 당신은 파이썬 대화 형 인터프리터의 세션 내에서 클라이언트를 인스턴스화 할 수 있습니다.

테스트 응답 get() 및 post() 메서드는 모두 Response 개체를 반환합니다. 이 Response 객체는 Django 뷰에서 반환 한 HttpResponse 객체와 다릅니다. 테스트 응답 객체는 테스트 코드가 검증하는데 유용한 몇 가지 추가 데이터를 가지고있다.

요청하기 django.test.Client 클래스를 사용하여 요청하십시오. 당신이 예외를 발생 뷰에서 테스트 클라이언트를 가리키면

class Client(enforce_csrf_checks=False, **defaults) 

예외 는, 그 예외는 테스트 케이스에서 볼 수 있습니다. 그런 다음 표준 try ... except 블록 또는 assertRaises()를 사용하여 예외를 테스트 할 수 있습니다.

제공된 테스트 케이스 클래스 일반 Python 유닛 테스트 클래스는 unittest.TestCase의 기본 클래스를 확장합니다. 자세한 정보와 더 많은 예제 방문 https://docs.djangoproject.com/en/1.7/topics/testing/tools/

+0

답변 해 주셔서 감사합니다. 그러나 나는 매일 많은 시험을 쓴다. 그리고 멋진 테스트를 작성하는 방법을 완벽하게 이해합니다. 일반적인 테스트 사례를 자동으로 생성하는 솔루션을 찾으려고합니다. 그러나이 시점에서이 질문은 저에게 실제적인 것이 아닙니다. 왜냐하면 나는 직장을 바꾸었고 이제는 장고를 사용하지 않기 때문이다. –