2016년 3월 17일 목요일

클린코드를위한 테스트 주도개발 3/18

책 330페이지의

authenticate 모킹을 통한 뷰테스트

에서 (앞에서 __init__.py를 이용해서 test폴더를 만들었으리라 믿는다. 기본 tests.py를 지우는 것도 잊지말자)

라고 써있다. 한 5분 고민이 되었다 (난 그걸 이용해서 만드는게 뭔지 모르겠는데?)

예전  기능테스트를 3가지로 분류한것처럼 유닛테스트를 3가지로 분류한적이있다.

그때 mv 명령어를 사용해서 lists/tests/test_views, test_models,test_forms)

이렇게 나누었었다.  그때 제일먼저 lists/tests/__init__.py 파일부터 touch명령어로 만들어
줬었다. 그걸말하는듯하다.

그렇게 해주고 accounts/tests/test_views.py,__init__.py를 만들고 나서 테스트를 실행해보면

ImportError: 'tests' module incorrectly imported from '/home/kyungtai/workspace/python/second/superlists/accounts/tests'. Expected '/home/kyungtai/workspace/python/second/superlists/accounts'. Is this module globally installed?

이런 에러가 나온다. 뭐지? 모듈을 잘못 임포트했다거?

한참을 검색해보면 저 괄호속 내용이 무얼말하는건지 감이온다. 기본 tests.py를 지우지 않으면 에러가 발생한다.

왜냐하면 기본 tests.py 안에는 

from django.test import TestCase

# Create your tests here.

라는 내용이 있다. 내가 테스트하려는 test_views.py 에도 django.test에서 TestCase를 임포트 한다  어?;; 똑같은데?

http://stackoverflow.com/questions/25775185/django-test-runner-fails-in-virtualenv-on-ubuntu
의 마지막 3줄을 읽어보니 알거같다.

역시 아침에 일어나면 머리가 상쾌해져서 문제 파악이 쉽다 ^^



추가
requirements.txt에 pip 내용을 추가해야할땐
pip freeze > requirements.txt
빼먹으면 다음 배포처리가 동작 안한다는...


+ 덧

아 제가 +1 해버렸네요 G+1 버튼이 작성자인 제가 눌러도 올라가는군요 :)
제가 작성한 글을 제가 추천하다니 아침부터 몹시 부끄러운 하루입니다 ㅋㅋ

댓글 없음: