Pytest 에서 skip 과 skipif 의 구체 적 인 사용 방법

5447 단어 PythonPytest
skip 사용법
사용 예시:@pytest.mark.skip(reason="건 너 뛴 이 유 는 실행 결과 에 인쇄 됩 니 다")
테스트 함수 에 표시
...을 들다🌰

import pytest


def test_1():
    print("    1")


@pytest.mark.skip(reason="   ,      ")
def test_2():
    print("    2")
실행 결 과 는 다음 과 같 습 니 다.

테스트 클래스 의 테스트 용례 에 표시
...을 들다🌰

import pytest

class TestCase(object):
    def test_1(self):
        print("    1")


    @pytest.mark.skip(reason="   ,      ")
    def test_2(self):
        print("    2")
실행 결 과 는 다음 과 같다.

테스트 클래스 방법 에 표시
...을 들다🌰

import pytest


@pytest.mark.skip(reason="   ,      ")
class TestCase1(object):
    def test_1(self):
        print("    1")

    def test_2(self):
        print("    2")


class TestCase2(object):
    def test_3(self):
        print("    3")

    def test_4(self):
        print("    4")
실행 결 과 는 다음 과 같다.

총결산
  • @pytest.mark.skip 는 함수,클래스,클래스 방법 에 추가 할 수 있 습 니 다
  • 클래스 에 추가 하면 클래스 안의 모든 테스트 용례 가 실행 되 지 않 습 니 다
  • 테스트 용례 실행 중 강제 건 너 뛰 기
    하나의 for 순환 을 예 로 들 면 세 번 째 로 실 행 될 때 튀 어 나 옵 니 다.
    
    import pytest
    
    def test_demo():
        for i in range(50):
            print(f"   【{i}】  ")
            if i == 3:
                pytest.skip("    ,     ")
    실행 결 과 는 다음 과 같다.

    모듈 단계 에서 테스트 용례 건 너 뛰 기
    문법:pytest.skip(msg="",allow_module_level=False)allow_module_level=True시 모듈 단계 에서 전체 모듈 을 건 너 뛰 도록 설정 할 수 있 습 니 다.
    
    import pytest
    
    pytest.skip("      ", allow_module_level=True)
    
    @pytest.fixture(autouse=True)
    def test_1():
        print("      1")
    
    def test_2():
        print("      2")
    실행 결 과 는 다음 과 같다.

    조건 부 건 너 뛰 기
    문법:@pytest.mark.skipif(condition,reason=")
    
    import sys
    import pytest
    
    
    @pytest.mark.skipif(sys.platform == 'darwin', reason="does not run on MacOS")
    class TestSkipIf(object):
        def test_demo(self):
            print("   MacOS   ")
    메모:condition 은 True 로 돌아 가 야 건 너 뛸 수 있 습 니 다.
    실행 결 과 는 다음 과 같 습 니 다.

    태그 사용 건 너 뛰 기
  • pytest.mark.skip 과 pytest.mark.skipif 를 태그 변수
  • 에 할당 할 수 있 습 니 다.
  • 서로 다른 모듈 간 에 이 태그 변 수 를 공유 합 니 다
  • 여러 모듈 의 테스트 사례 가 같은 skip 이나 skipif 를 사용 해 야 한다 면 하나의 단독 파일 로 이 유 니 버 설 표 시 를 관리 한 다음 전체 테스트 사례 집
  • 에 적용 할 수 있 습 니 다.
    ...을 들다🌰
    
    import sys
    import pytest
    
    skipmark = pytest.mark.skip(reason="      ")
    skipifmark = pytest.mark.skipif(sys.platform == 'darwin', reason="does not run on MacOS")
    
    
    @skipifmark
    class TestSkipIf(object):
        def test_demo(self):
            print("   MacOS   ")
    
    
    @skipmark
    def test_1():
        print("    1")
    
    
    def test_2():
        print("    2")
    실행 결 과 는 다음 과 같다.

    가 져 오기 가 부족 할 때 용례 건 너 뛰 기
    문법:pytest.importorskip( modname: str, minversion: Optional[str] = None, reason: Optional[str] = None )인자:
  • modname:가 져 올 모듈 이름,예 를 들 어 selenium;
  • minversion:가 져 올 최소 버 전 번 호 를 표시 합 니 다.이 버 전이 기준 에 도달 하지 않 으 면 오류 메 시 지 를 출력 합 니 다.
  • reason:모듈 이 가 져 오지 않 았 을 때 만 주어진 매개 변 수 는 주어진 메시지 내용 을 표시 합 니 다
  • 대응 모듈 을 찾 을 수 없습니다
    ...을 들다🌰
    
    import pytest
    rock = pytest.importorskip("rock")
    
    @rock
    def test_1():
        print("       rock  ")
    실행 결과

    하면,만약,만약...
    ...을 들다🌰
    
    import pytest
    sel = pytest.importorskip("selenium", minversion="3.150")
    
    @sel
    def test_1():
      	print("       selenium  ")
    실행 결과

    정리 참조
    파인애플 테스트 노트
    Pytest 에서 skip 과 skipif 의 구체 적 인 사용법 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 skip 과 skipif 의 사용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기