python 의 pytest 프레임 워 크 의 명령 행 매개 변수 상세 설명(아래)

머리말
4.567915.명령 행 에서 테스트 사례 를 수행 하 는 일부 매개 변 수 는 어떻게 사용 합 니까?오늘 은 다른 명령 옵션 의 사용 과 pytest 가 테스트 용례 를 수집 하 는 규칙 을 계속 업데이트 할 것 입 니 다!
pytest 실행 사례 명령 행 인자
--collect-only:현재 디 렉 터 리 에 있 는 모든 테스트 모듈,테스트 클래스 및 테스트 함수 나열

--tb=style:테스트 사례 가 출력 을 수행 하 는 역 추적 정 보 를 차단 하고 사례 가 실 패 했 을 때의 출력 정 보 를 간소화 할 수 있 습 니 다.style 은 on,line,short,구체 적 인 차이 점 은 스스로 체험 하 세 요.

--lf:한 번 의 사례 가 실 행 된 후에 실패 한 테스트 사례 가 있다 면 이 명령 을 사용 하여 실패 한 테스트 사례 를 다시 실행 할 수 있 습 니 다.
우 리 는 처음으로 용례 를 집행 하면 두 가지 용례 가 실패 하 는 것 을 볼 수 있다.

우 리 는--lf 매개 변 수 를 다시 실행 하 는 사례 를 사용 하면 이전에 실 패 했 던 두 가지 사례 만 다시 실 행 된 것 을 발견 할 수 있 습 니 다.

--ff:지난번 테스트 용례 에 실패 한 용례 가 나타 나 면--ff 를 사용 하면 실패 한 테스트 용례 가 먼저 실 행 됩 니 다.나머지 용례 도 다시 실 행 됩 니 다.

작은 매듭
이상 은 명령 행 이 테스트 용례 를 실행 할 때 자주 사용 하 는 매개 변수 입 니 다.이 매개 변 수 는 단독으로 사용 할 수 있 을 뿐만 아니 라 조합 해서 사용 할 수도 있 습 니 다.나중에 fixture 를 사용 할 때의 명령 도 언급 될 수 있 습 니 다.지금 은 알 필요 가 없습니다.명령 도움말 정 보 를 보기 위해 서--help 를 사용 할 수 있 습 니 다!
pytest 테스트 용례 수집 규칙
1)하나 이상 의 디 렉 터 리 부터 찾 습 니 다.명령 행 에 파일 이나 디 렉 터 리 를 지정 할 수 있 습 니 다.지정 되 지 않 으 면 현재 디 렉 터 리 부터 용례 를 수집 할 수 있 습 니 다.
2)이 디 렉 터 리 와 모든 하위 디 렉 터 리 에서 테스트 모듈 을 찾 습 니 다.
3)테스트 모듈 은 파일 이름 이 test *를 가리킨다.py 또는*test.py 파일
4)테스트 모듈 에서 test 찾기시작 함수
5)Test 로 시작 하 는 클래스 를 찾 습 니 다.그 중 우선 포함 를 선별init__()함수 의 클래스,클래스 에서 Test 를 찾 습 니 다.처음 클래스 방법
규칙 검증
이제 pytest 검색 테스트 사례 를 차례대로 보 여 드 리 겠 습 니 다.
우선 아래 디 렉 터 리 구조 에 따라 항목 을 새로 만 듭 니 다.

모든 파일 은 다음 과 같은 코드 를 작성 합 니 다.
test_테스트 모듈 1.py

 #     
 def test_2():
 assert 1 == 1
 #     
 def func_2():
 print('    ') 
 #    
 class TestClass_2(object):
#     
def test_class_3(self):
assert 1 == 1
#     
def func_class_3(self):
assert 1 == 1
#    
class NoTestClass_2(object):
#     
def test_class_4(self):
assert 1 == 1
 #     
 def func_class_4(self):
 assert 1 == 1
test_테스트 모듈 2.py

 #      
 def test_1(): 
 assert 1==1
 #     
 def func_1():
 print('    ')
#    
class TestClass_1(object):
#     
def test_class_1(self):
assert 1==1
#     
def func_class_1(self):
assert 1==1
#    
class NoTestClass_1(object):
#     
def test_class_2(self):
assert 1 == 1
#     
def func_class_2(self):
assert 1 == 1
테스트 용례.py

 #     
 def test_one():
 assert 1==1
 #     
 def func():
 assert 1==1
코드 분석
우 리 는 현재 이론 에 따라 코드 를 분석 하고 결합 하여 대체적으로 계산 할 수 있 습 니 다.프로젝트 루트 디 렉 터 리 에서 사례 를 실행 하면 4 가지 효과 적 인 테스트 사례 를 실행 할 것 입 니 다!
프로젝트 루트 디 렉 터 리 에서 pytest--collect-only 를 실행 하여 상황 을 보면 test 를 검색 한 것 을 발견 할 수 있 습 니 다.테스트 모듈 1 과 test테스트 모듈 2 파일 및 TestClass 포함2 와 TestClass1 류 및 내부 testclass_3 과 testclass_1 외부 와 의 테스트 함수 test2,test_1.

D:\pytest        >pytest --collect-only
============================= test session starts =============================
platform win32 -- Python 3.6.4, pytest-3.8.0, py-1.6.0, pluggy-0.7.1
rootdir: D:\pytest        , inifile:
collected 4 items
<Package 'D:\\pytest        \\      1'>
<Module 'test_    1.py'>
<Function 'test_2'>
<Class 'TestClass_2'>
<Instance '()'>
<Function 'test_class_3'>
<Module 'test_    2.py'>
<Function 'test_1'>
<Class 'TestClass_1'>
<Instance '()'>
<Function 'test_class_1'>
======================== no tests ran in 0.14 seconds =========================
우 리 는 대체적으로 pytest 의 검색 규칙 을 볼 수 있 습 니 다.이제 모든 사례 를 실행 하여 명령 pytest-v 를 사용 합 니 다.이 를 통 해 알 수 있 듯 이 4 개의 사례 만 실 행 된 것 을 알 수 있다.즉,4 개의 사례 만 식별 되 었 고 아래 의 출력 정보 에 따라 모든 사례 가 있 는 위 치 를 알 수 있다.

D:\pytest        >pytest -v
============================= test session starts =============================
platform win32 -- Python 3.6.4, pytest-3.8.0, py-1.6.0, pluggy-0.7.1 -- c:\python36\python.exe
cachedir: .pytest_cache
rootdir: D:\pytest        , inifile:
collected 4 items
      1/test_    1.py::test_2 PASSED [ 25%]
      1/test_    1.py::TestClass_2::test_class_3 PASSED [ 50%]
      1/test_    2.py::test_1 PASSED [ 75%]
      1/test_    2.py::TestClass_1::test_class_1 PASSED [100%]
========================== 4 passed in 0.07 seconds ===========================
여러분 은 스스로 파일,함수,클래스 이름 을 수정 한 후에 용례 를 실행 하여 자신의 생각 에 따라 용례 를 실행 할 수 있 는 지 확인 할 수 있 습 니 다!
총결산
ok,이 두 편의 글 을 통 해 우 리 는 테스트 모듈,테스트 클래스,테스트 함수 라 는 이름 을 알 고 간단 한 명령 행 을 사용 하여 테스트 사례 를 수행 하 는 방법 을 알 고 있 습 니 다.그럼 빨리 해 봐!
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기