2014-12-28 2 views
3

Django 응용 프로그램, 즉 데이터베이스와 상호 작용하는 스크립트에서 테스트를 수행하려고합니다. 일반적으로 장고에서 테스트하기를 원할 때 우리는 단순히 테스트 스위트를 빌드합니다. 이 테스트 스위트로 우리는 심지어 얻을 같은 다른 설정 settings.py 내장 오버라이드 (override) 등의 좋은 명령 줄 스위치 파일 :Django 외부 스크립트 테스트

1) 내가 말했다 스크립트를 테스트 할 : 여기

python manage.py test myApp --settings='settings_test' 

문제입니다 앱의 일부가 아니기 때문에 manage.py을 사용하여 테스트 스위트를 호출 할 방법이 없다는 것을 알고있다. 이것이 가능한가? 예 :

python manage.py test /path/myScript.py --settings='settings_test' 
+0

당신이 https://github.com/django-nose/django-nose을 사용하는 장고 버전 :, 장고 코를 설치 자신의 Github에서의 REPO을 확인하는 방법에 대한 추가 정보를 원하시면

- Project-Root/ - Your-Non-App-Code/ - __init__.py - non_app_code.py - tests/ - __init__.py - non_app_code_tests.py 

:

그래서 당신의 프로젝트 구조는 다음과 같이 보일 것이다? – mbrochh

+0

레드 헤드 - 스텝 - 자식'Django-NonRel'은'Django == 1.5.5'입니다. – James

답변

3

다른 테스트 러너를 사용하는 것이 좋습니다.

그런 다음 pip install django-nose을 할 수는

./manage.py test --settings=yourproject.test_settings.py 

test_settings.py

TEST_RUNNER = `django_nose.NoseTestSuiteRunner` 

이제 실행할 수있는 테스트에서 다음 설정을 설정하고 코의 TestRunner는 tests라는 폴더의 모든 하위 폴더를 검색합니다 해당 폴더에서 _tests.py으로 끝나는 파일을 검색합니다 (해당 파일에서 TestCase, a에서 파생 된 클래스를 검색합니다). s 평소).

+0

이것에 대해 살펴보고 upvote하기 전에 잠시 시간이 걸릴 수 있지만 합법적 인 정보처럼 보입니다. 또한, 솔루션은 네이티브 Django 솔루션이 될 것처럼 보입니다. 예를 들어, 지시 한대로 외부 테스트 스크립트를 Django 프로젝트 폴더로 이동하십시오. 'Django <1.6'은 MyApp.TestCase.test 구조를 기대하기 때문입니다. 다시 한번 감사드립니다. – James

+0

지난 3 일 동안'django_nose'를 가지고 놀았습니다. 이것은 견고한 선두였습니다 ... 이제는 취재 보고서와 완전히 해킹 된 HTML 테스트 요약 보고서 출력이 있습니다. 무엇보다도, 당신이 지시했듯이, 이제 dev 데이터베이스를 파괴하지 않으면 서 비 앱 테스트를 수행 할 수 있습니다. 고맙습니다! – James

+0

당신은 대부분 환영합니다 :) – mbrochh