Pytest-테스트 그룹화

이 장에서는 마커를 사용하여 테스트를 그룹화하는 방법을 배웁니다.

Pytest를 사용하면 테스트 기능에 마커를 사용할 수 있습니다. 마커는 테스트 기능에 대한 다양한 기능 / 속성을 설정하는 데 사용됩니다. Pytest는 xfail, skip 및 parametrize와 같은 많은 내장 마커를 제공합니다. 그 외에도 사용자는 자신의 마커 이름을 만들 수 있습니다. 마커는 아래 주어진 구문을 사용하여 테스트에 적용됩니다.

@pytest.mark.<markername>

마커를 사용하려면 import pytest테스트 파일의 모듈. 테스트에 자체 마커 이름을 정의하고 해당 마커 이름을 가진 테스트를 실행할 수 있습니다.

표시된 테스트를 실행하려면 다음 구문을 사용할 수 있습니다.

pytest -m <markername> -v

-m <markername>은 실행할 테스트의 마커 이름을 나타냅니다.

테스트 파일 업데이트 test_compare.pytest_square.py다음 코드로. 3 개의 마커를 정의하고 있습니다.– great, square, others.

test_compare.py

import pytest
@pytest.mark.great
def test_greater():
   num = 100
   assert num > 100

@pytest.mark.great
def test_greater_equal():
   num = 100
   assert num >= 100

@pytest.mark.others
def test_less():
   num = 100
   assert num < 200

test_square.py

import pytest
import math

@pytest.mark.square
def test_sqrt():
   num = 25
   assert math.sqrt(num) == 5

@pytest.mark.square
def testsquare():
   num = 7
   assert 7*7 == 40

@pytest.mark.others
   def test_equality():
   assert 10 == 11

이제 다음으로 표시된 테스트를 실행합니다. others, 다음 명령을 실행하십시오-

pytest -m others -v

아래 결과를 참조하십시오. 다음과 같이 표시된 2 개의 테스트를 실행했습니다.others.

test_compare.py::test_less PASSED
test_square.py::test_equality FAILED
============================================== FAILURES
==============================================
___________________________________________ test_equality
____________________________________________
   @pytest.mark.others
   def test_equality():
>  assert 10 == 11
E  assert 10 == 11
test_square.py:16: AssertionError
========================== 1 failed, 1 passed, 4 deselected in 0.08 seconds
==========================

마찬가지로 다른 마커로도 테스트를 실행할 수 있습니다.