hg bisect --command
에 전달할 수있는 단위 테스트가 포함 된 Python 모듈을 갖고 싶습니다. 유닛 테스팅을 위해 임시 django db를 설정하고 해체하는 방법은 무엇입니까?
단위 테스트
는 장고 응용 프로그램의 일부 기능을 테스트하고 있습니다,하지만 난mytestapp
이 settings.py에서 활성화되어야 할 것이다
hg bisect --command manage.py test mytestapp
때문에 내가 사용하는 수 있다고 생각하지 않으며, settings.py에 대한 편집은 사방 될 때
hg bisect
작업 디렉토리를 갱신합니다.
따라서, 나는 다음과 같은 무언가가 갈 수있는 가장 좋은 방법입니다 있는지 알고 싶습니다
import functools, os, sys, unittest
sys.path.append(path_to_myproject)
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'
def with_test_db(func):
"""Decorator to setup and teardown test db."""
@functools.wraps
def wrapper(*args, **kwargs):
try:
# Set up temporary django db
func(*args, **kwargs)
finally:
# Tear down temporary django db
class TestCase(unittest.TestCase):
@with_test_db
def test(self):
# Do some tests using the temporary django db
self.fail('Mark this revision as bad.')
if '__main__' == __name__:
unittest.main()
당신도 조언을 수 있다면 가장 감사해야 :
- 이있는 경우 더 간단한 방법, 아마도
django.test.TestCase
을 서브 클래스 화하고 settings.py를 편집하지 않거나 그렇지 않은 경우; - 위의 줄은 "임시 django db 설정"및 "임시 django db 분리"라고해야합니다?
+1 최종 해결책 게시. –
감사합니다. 이것은 코 테스트를 포함한 임의의 유닛 테스트를 위해 장고 테스트 데이터베이스를 설정하는 방법을 다른 사람들에게 보여주기를 바랍니다. – blokeley