반응형
Pytest 에는 테스트를 준비하는 데 사용되는 Fixture 라는 함수가 있음
여러 케이스에서 공통으로 사용할 수 있음
Fixture를 사용하면 테스트의 시작 전에 필요한 작업을 수행하고, 테스트가 완료된 후 정리 작업을 수행할 수 있음
예를 들어, 데이터베이스 연결, 웹 브라우저 열기, 파일 생성 및 삭제 등의 작업을 fixture로 정의하여 테스트 메서드에서 사용할 수 있음
pytest에서 fixture는 @pytest.fixture 데코레이터를 사용하여 정의됨
import pytest
@pytest.fixture
def sample_data():
return [1, 2, 3, 4, 5]
def test_with_fixture(sample_data):
assert sum(sample_data) == 15
def test_with_fixture2(sample_data):
assert max(sample_data) == 4
위에 코드를 살펴보면 중복으로 sample data 를 작성할 필요 없이 수행이 가능하다
- sample_data라는 fixture는 [1, 2, 3, 4, 5] 리스트를 반환
- test_with_fixture 메서드가 sample_data 리스트를 활용
테스트 클래스를 작성할때
- 테스트 함수는 test_로 시작
- 테스트 클래스는 Test로 시작
테스트 함수나 클래스의 네이밍이 이에 맞지 않는 경우 pytest가 해당 파일을 인식하지 않을 수 있음
그럼 class 안에서 fixture를 사용할 때는 어떻게 해야할까
class 에서 fixture를 인자값으로 받아오려면 self 를 사용해야함
코드는 아래
import pytest
@pytest.fixture
def sample_data():
return [1, 2, 3, 4, 5]
class Test_Class0:
def test_with_fixture1(self, sample_data):
assert sum(sample_data) == 15
def test_with_fixture2(self, sample_data):
assert max(sample_data) == 4
class Test_Case1:
def test_with_fixture3(self, sample_data):
assert 2 in sample_data
반응형
'🎪 놀고있네 > Python' 카테고리의 다른 글
[Python] PyTest-html (0) | 2024.05.01 |
---|---|
[Python] Pytest - Skip Tests (0) | 2024.05.01 |
[Python] Pytest 사용해보기(Class) (0) | 2024.05.01 |
[Python] Pytest 설치하고 사용하기 (0) | 2024.04.30 |
[PyTest] 특정 테스트 케이스만 실행하기 - 특정 그룹 지정 (0) | 2024.04.30 |
댓글