티스토리 뷰

장고에서는 테스트를 정말 잘 지원하고 있는데

서비스를 운영하면서 테스트를 거의 작성하지 않으면서 하고 있다가

서비스가 점점 커지면서 더이상 미루긴 힘들다고 판단

TDD를 조금씩 도입하려 한다.


사실 예전부터 계속 시도하면서 조금씩 쓰고 있었지만 쓰지 못했던 이유가

서비스는 이미 많이 진행되었고 테스트를 할 때마다 데이터를 생성해야 하는데 

더미를 만드는 일이 너무 큰 일이라

시간이 너무 많이 소요되고 이로 인해 긴박한 일정을 맞출수 없었기 때문이다.


테스트 디비를 사용하지 않고 테스트를 진행하려면

장고 테스트를 쓸때 필요한 test runner라는 것을 설정 해야 한다


나는 장고 프로젝트를 진행할때 core라는 앱을 하나 생성해서 유틸들을 모아두는데

core.test_util.py

에다 러너를 이렇게 설정하고

# -*- coding:utf-8 -*-

from django.test.runner import DiscoverRunner


class ZummaTestRunner(DiscoverRunner):

    """

    테스트를 할때 데이터베이스를 새로 생성하지 않도록

    이미 많이 진행된 프로젝트라 기본 테스트 철학을 반영하기에 에로사항이 많음

    """


    def setup_databases(self, **kwargs):

        pass


    def teardown_databases(self, old_config, **kwargs):

        pass


기본 러너에 있는 setup_datebases와 teardown_databases를 오버라이딩해 하는 작없을 무시해 주면 된다.


이 러너를 settings.py에 추가해 주면 테스트 디비 없이 테스트를 할 수 있게 된다.


TEST_RUNNER = 'core.test_util.ZummaTestRunner' 


TDD를 도입한 이후의 효과는 차차 포스팅 하려 한다.


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함