-
[Python / pytest] pytest timeout, pytest 시간 제한하기Programming/Python 2023. 5. 11. 22:35반응형
pytest로 test 스크립트들을 짜다 보면 time과 관련된 설정을 해야 될 경우들이 있습니다.
예를 들면, 무조건 몇초이내에 실행되야 성공으로 판단되는 test case나, 중간에 잘못된 로직으로 빠지면 test가 절대 종료되지 않아 특정 시간 후에는 끊어내야 하는 그런 케이스들이 있을 수 있습니다.
이런 경우에 일정 시간 내에 테스트가 종료되지 않으면 fail 처리를 할 수 있는 방법이 있습니다.
1. 모든 테스트에 일괄된 timeout 적용
우선 pytest-timeout 모듈을 설치합니다.
pip install pytest-timeout
그 후 pytest command를 실행시킬때 뒤에 timeout option을 추가하면 됩니다.
pytest --timeout=10
→ 위에 커맨드처럼 실행하면 모든 테스트에 일괄적으로 10초의 timeout이 적용되고, 테스트를 수행하는데 10초가 넘게 걸리면 fail 처리 됩니다.
2. 각 테스트별로 timeout 설정 개별 적용
@pytest mark를 이용해 테스트별로 각각의 설정을 적용할 수 있습니다.
아래 예시 코드처럼 적용하면 됩니다.
@pytest.mark.timeout(2) # 시간 제한 2초로 설정 def test_example(): time.sleep(5) # 5초 대기
→ 위의 경우 2초안에 실행해야 했다고 설정했기 때문에 해당 테스트는 fail 되게 됩니다.
반응형'Programming > Python' 카테고리의 다른 글
데이터 추출과 삽질,,, 과정 기록 / python multi-threading (0) 2023.05.01 python pytest :: fixtures 사용해 보기 (0) 2023.01.03 Python pytest 살펴보기, 예제 코드 (0) 2023.01.03 Python :: Non-ASCII character ‘xec’ (0) 2022.04.25