TDD - Pytest Markers 활용

정태경·2022년 10월 7일
0

TDD

목록 보기
6/10
post-thumbnail

Markers

마커를 활용하면 특정 마커가 적용되어있는 케이스만 실행할 수 있다.

Markers 사용

Markers 사용을 위해선 pytest.ini 파일 생성이 필요하다.

# pytest.ini

[pytest]
markers =
    basiccases
    regressioncases

특정 Marker가 지정된 테스트 케이스만 실행

  • 터미널에서 아래 명령을 통해 특정 Marker가 지정된 테스트 케이스만 실행할 수 있다.
    $ pytest {모듈명} -m {실행할 마커}
import pytest

@pytest.mark.basiccases                     # 테스트 케이스에 마커 지정
def test_login():
    print("로그인 테스트")

@pytest.mark.regressioncases                # 테스트 케이스에 마커 지정
def test_search():
    print("검색 테스트")

@pytest.mark.basiccases                    # 테스트 케이스에 마커 지정
def test_signin():
    print("회원가입 테스트")

## =============================================================================

$ pytest {모듈명} -m {실행할 마커}
$ pytest test_markers.py -v -m basiccases

테스트 스킵

  • @pytest.mark.skip

Parameterize Markers (마커의 매개변수화)

  • 하나의 테스트 케이스에 테스트 데이터를 여러 개 넘겨서 반복 테스트 수행이 가능하도록 지원해줌.
  • 아래 코드를 보면 get_data() 메서드에서 테스트 데이터를 3개 넘겨주고 있으며, 이를 파라미터로 넘겨주어 3회의 테스트 실행이 가능함
  • ids= 는 테스트 케이스에 ID(이름)을 지정해주는 옵션.
import pytest


def get_data():
    return [
        ("abcd@gmail.com", "password", "google"),
        ("abcd@kakao.com", "password@@", "kakao"),
        ("abcd@myrealtrip.com", "password@#", "myrealtrip"),
    ]


@pytest.mark.parametrize("username, password, site", get_data(), ids=["google login", "kakao login", "myrealtrip login"])
def test_login(username, password, site):
    print(
        "사용자 이름 : " + username +
        " 비밀 번호 : " + password +
        " 사이트 : " + site)
profile
現 두나무 업비트 QA 엔지니어, 前 마이리얼트립 TQA 엔지니어

0개의 댓글