Pytest-일정
Fixture는 기능이 적용되는 각 테스트 기능 전에 실행됩니다. 고정 장치는 데이터베이스 연결, 테스트 할 URL 및 일종의 입력 데이터와 같은 일부 데이터를 테스트에 공급하는 데 사용됩니다. 따라서 모든 테스트에 대해 동일한 코드를 실행하는 대신 테스트에 픽스처 함수를 첨부 할 수 있으며 각 테스트를 실행하기 전에 실행되고 데이터를 테스트에 반환합니다.
함수는 다음과 같이 조명기로 표시됩니다.
@pytest.fixture
테스트 기능은 입력 매개 변수로 조명기 이름을 언급함으로써 조명기를 사용할 수 있습니다.
파일 생성 test_div_by_3_6.py 아래 코드를 추가하십시오
import pytest
@pytest.fixture
def input_value():
input = 39
return input
def test_divisible_by_3(input_value):
assert input_value % 3 == 0
def test_divisible_by_6(input_value):
assert input_value % 6 == 0
여기에 우리는 input_value, 테스트에 입력을 제공합니다. 조명기 기능에 액세스하려면 테스트에서 입력 매개 변수로 조명기 이름을 언급해야합니다.
테스트가 실행되는 동안 Pytest는 입력 매개 변수로 조명기 이름을 볼 것입니다. 그런 다음 조명기 기능을 실행하고 반환 된 값은 테스트에서 사용할 수있는 입력 매개 변수에 저장됩니다.
다음 명령을 사용하여 테스트를 실행하십시오-
pytest -k divisible -v
위의 명령은 다음 결과를 생성합니다-
test_div_by_3_6.py::test_divisible_by_3 PASSED
test_div_by_3_6.py::test_divisible_by_6 FAILED
============================================== FAILURES
==============================================
________________________________________ test_divisible_by_6
_________________________________________
input_value = 39
def test_divisible_by_6(input_value):
> assert input_value % 6 == 0
E assert (39 % 6) == 0
test_div_by_3_6.py:12: AssertionError
========================== 1 failed, 1 passed, 6 deselected in 0.07 seconds
==========================
그러나 접근 방식에는 자체 제한이 있습니다. 테스트 파일 내에 정의 된 고정 기능은 테스트 파일 내에 만 범위가 있습니다. 우리는 다른 테스트 파일에서 그 조명기를 사용할 수 없습니다. 여러 테스트 파일에서 픽스처를 사용할 수 있도록하려면 conftest.py라는 파일에 픽스처 함수를 정의해야합니다.conftest.py 다음 장에서 설명합니다.