일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- leetcode
- 프로젝트
- 3줄정리
- 미드시청
- 10분
- 리얼 클래스
- 영어원서읽기
- 잡생각
- FIT XR
- 운동
- 읽기
- 괜찮음
- 화상영어
- English
- Problem Solving
- 쓰릴오브파이트
- 매일
- 30분
- Daily Challenge
- 월간
- realclass
- 사이드
- 개발자
- 링피트
- 만화도
- 영어공부
- 스탭퍼
- 뭐든
- Writing
- 파비최
- Today
- Total
파비의 매일매일 공부기록
파이썬으로 하는 데브옵스 - 8장 #1 본문
이번장은 pytest에 대한 내용이다. 검증은 모든 단계에서, 중요한 목표를 달성하기 위해 수행될 수 있다고 저자는 말한다.
pytest를 실무에서도 사용하는데, 어떻게 사용하는지 구체적으로는 잘 모르고 기존에 있던 소스를 참고해서 작업을 했었다 보니, 이번 기회에 새로운 지식을 얻게 되면 활용할 수 있을 것 같다.
pytest를 통한 강력한 테스트
- 완전한 기능을 갖춘 프레임워크로서 프로젝트의 문서 전체를 반복하지 않고서는 범위를 좁혀서 도움이 될 만한 소개를 하기 어려울 정도라고 저자는 극찬.
- unittest를 사용하는 파이썬의 내장 테스트 방식만을 고수하는 것은 번거로움.
- 좀 더 간단한 테스트 케이스 작성 방법을 이해하고 명령줄 툴, 리포팅 엔진, 플러그인 확장성 및 프레임워크 유틸리티를 활용하기를 권장.
- 테스트 검색이 되기 위한 규약 : 테스트 디렉터리의 이름은 tests로 지정해야 함. 테스트 파일은 접두사로 test_를 붙이거나 test.py로 끝나야 함. 테스트 함수는 접두사로 test_가 붙어야 함. 테스트 클래스는 접두사로 Test가 붙어야 함. 테스트 메서드 역시 접두사로 test_가 붙어야 함.
- unittest와 차이 : unittest는 클래스와 클래스 상속을 반드시 사용해야 함. 대부분의 assert 메서드를 이해하고 기억해야 하지만 pytest는 assert 함수 하나로 다 된다.
pytest의 특징
- hook와 같은 다양한 확장 옵션 제공. 런타임의 각기 다른 시점에 프레임워크 내부와 소통할 수 있게 해 줌.
conftest.py
- 이 파일에서는 툴이 플러그인처럼 확장될 수 있음.
- 이 파일이 있으면 프레임워크가 이를 로드해 그 안에 있는 특정 명령을 실행. 모두 자동으로 진행.
- 일반적으로 fixture에 대한 hook, fixture 및 helper를 보유하기 위해 사용됨. 인수로 선언된 테스트 내에서 해당 fixture를 사용할 수 있음.
- 웬만하면 2개 이상의 테스트 모듈이 이 파일을 사용할 때 픽스처와 헬퍼를 추가하는 것이 바람직.
- 본 파일을 로드하는 유일한 조건은 tests 디렉터리 내에 정확히 일치하는 이름으로 존재하는 것.
assert
- 보이지 않는 곳에서 객체를 검사하고 오류를 좀 더 자세히 기술하는 풍부한 비교 엔진 제공
파라미터화 (parametrize 데코레이터 활용)
- 비슷한 입력으로부터 동일한 결과를 평가해야 할 때, 모든 값을 그룹화해 테스트에 전달할 수 있는 기능이 있어 편리함. (여러 개의 테스트 함수를 하나로 줄일 수 있음)
- 출력에는 반복된 각각의 단일 테스트에 사용된 값이 대괄호 안에 포함되어 있어서 확인이 용이함.
'Study > Python' 카테고리의 다른 글
파이썬으로 하는 데브옵스 - 8장 #3 (0) | 2022.01.03 |
---|---|
파이썬으로 하는 데브옵스 - 8장 #2 (0) | 2022.01.02 |
파이썬으로 하는 데브옵스 - 7장 #4 (0) | 2021.12.31 |
파이썬으로 하는 데브옵스 - 7장 #3 (0) | 2021.12.30 |
파이썬으로 하는 데브옵스 - 7장 #2 (0) | 2021.12.29 |