2012-04-28 2 views
6

selenium 단위 테스트를 django 1.4에 도입하여 실험하고 있습니다.셀레늄 테스트 및 단위 테스트 구성을위한 모범 사례

단위 테스트를 실행하는 표준 방법은 ./manage.py test 일 뿐이고 django-ignoretests을 사용하여 필요하지 않은 특정 장고 앱을 제외합니다.

그러나, 나는 내가 원하는 때 셀레늄 테스트를 실행하기로 결정하고 ./manage.py test 실행에만 표준 단위 테스트를 가질 수 있도록 내 프로젝트를 구성하는 방법이있다.

셀레늄 테스트 및 표준 단위 테스트를 분리하고 구성하는 데 유용한 모범 사례는 무엇입니까?

답변

5

당신은 항상 그룹 (예를 들어 여기 https://stackoverflow.com/a/5160779/1138710 설명) 다음에서 테스트의 나머지 부분을 manage.py test myapp.selenium_tests을 실행하고 그룹 단일 패키지 myapp/selenium_tests/에서 모든 셀레늄 테스트는 myapp/other_tests을 말할 수 있습니다. 그렇지 않으면

, 당신이 (해당 문서를 참조하십시오 https://docs.djangoproject.com/en/dev/topics/testing/#defining-a-test-runner)는 LiveServerTestCase에서 유래 여부를 각 테스트 클래스를 확인하는 테스트 러너를 작성할 수 가정 문제의 테스트 클래스에 대한

+0

셀레늄 테스트는 기능이있는 경향이 있으므로, 나는 셀프 테스트를 건너 뛸 수있는 옵션과 함께 별도의 패키지로 유지하면서 동일한 작업을 시도합니다 (http://stackoverflow.com/a/10743466/4281). 테스트 주자에 대한 아이디어가 마음에 들지만 경우에 따라 테스트가 LiveServerTestCase (다른 문제)의 자손이 아닐 수도 있습니다. –

5

, 나는 다음과 같은 장식을 추가 :

그런 다음
from django.conf import settings 
@unittest.skipIf(getattr(settings,'SKIP_SELENIUM_TESTS', False), "Skipping Selenium tests") 

테스트가 설정 파일에 추가 건너 뛸 : LiveServerTestCase의 서브 클래스 또는 간단한 장식으로 SKIP_SELENIUM_TESTS = True

이 쉽게 포장 할 수있다 . 내가 한 곳 이상에서 그것을 가지고 있다면 그것은 이미있을 것입니다.

관련 문제