일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코딩 테스트
- pandas
- 쿼리
- sort(reverse=True) v.s. reverse
- blinker
- CI/CD
- S3
- OS
- sort v.s. sorted
- Airflow
- timestamp
- decorator
- os.path
- slicing [::-1]
- 함수형 프로그래밍
- 순수함수
- [초급(예비) 개발자 오픈소스 실무 역량강화 교육]
- r-string
- PIP
- 생각
- functools.wraps
- boto3
- reverse v.s. reversed
- Python
- ds_store
- 고차함수
- selenium-wire
Archives
- Today
- Total
공부일지
[Python]unittest 쓰는 법 + if __name__ == '__main__' 쓰는 이유 본문
모듈 실행 결과를 볼 때
단위별로 확인하려면 unittest 라이브러리를 쓰자!
python 내장 라이브러리라고 한다.
from unittest import TestCase
class TestCase(TestCase):
def test_return_calc(self):
self.assertEqual(1+2, 3)
python3 -m unittest unit_test.py
하거나
from unittest import TestCase
class TestCase(unittest.TestCase):
def test_return_calc(self):
self.assertEqual(1+2, 3)
if __name__ == '__main__':
unittest.main()
python3 unit_test.py
하면 된다.
그러면 결과로
1+2 = 3 의 의미로
Okay 가 출력된다!
<결과>
======================================================================
FAIL: test_return_Others (__main__.TestCase.test_return_calc)
----------------------------------------------------------------------
Traceback (most recent call last):
File "<파일명>", line 8, in test_return_calc
self.assertEqual(1+2, 3)
AssertionError: None != 100
----------------------------------------------------------------------
Ran 1 test in 0.007s
FAILED (failures=1)
<파일경로>$ python3 unit_test.py
.
----------------------------------------------------------------------
Ran 1 test in 0.006s
OK
if __name__ == '__main__':
unittest.main()
이 코드 블럭을 보고 (동료가 적은 것)
왜 이 조건문이 필요한지 궁금해졌다.
if __name__ == '__main__': 쓰는 이유 (__name__ 이라는 변수 값이 main이라면 아랠 코드를 실행하라는 뜻)
안 쓰면 import만 돼 있는 모듈도 실행돼서 각각 값이 출력/실행되기 때문이다.
C나 Java는 main 함수 필수이지만
Python은 없다. 그렇다면 무엇을 실행하는 것일 까?
1)파이썬 코드 실행방식
- main() 없음
- 들여쓰기로 level 별 실행 순서 결정(level 0-들여쓰기 없음, 이 가장 먼저 실행)
2)__name__ 내장변수
- hello.py __name__. -> hello
- 현재 모듈 이름 == __name__
- 직접 실행된 모듈 == __main__
- 직접 실행되지 않고 import된 모듈 == 각 모듈 이름/파일명
즉, 스크립트 파일이 메인 프로그램으로 사용될 때와 모듈로 사용될 때를 구분하기 위한 용도라고 한다.
직접 실행되길 원하는 코드를 써주면 되는 것임!
참고 블로그
if __name__ == “__main__”은 왜 필요한지에 대해 알아보자
집중합시다. 집중!!🔥
velog.io
'Computer > 공부정리' 카테고리의 다른 글
[Python]logging 라이브러리를 이용한 log 남기기 (0) | 2023.11.24 |
---|---|
[Python]UnboundLocalError: cannot access local variable 'result' where it is not associated with a value (0) | 2023.11.24 |
[Git]git rebase 하다가 거부당했다... (1) | 2023.11.24 |
[Excel]숫자 정렬 안 될 때 (1) | 2023.11.02 |
[AWS S3]이미지 덮어씌워진 문제해결 (0) | 2023.11.02 |