2017-05-04 7 views
2

pytest 후크을 성공적으로 구현했지만 모든 테스트가 여러 번 실행됩니다.Pytest 후크로 인해 여러 번 테스트가 실행됩니다.

def pytest_report_teststatus(report): 
    if report.passed: 
     letter = "." 
     longrep = ' \u2714 ' 
    elif report.skipped: 
     letter = "s" 
     longrep = ' \u27A5 ' 
    elif report.failed: 
     letter = "F" 
     longrep = ' \u2717 ' 
     if report.when != "call": 
      letter = "f" 
    return report.outcome, letter, report.outcome.upper() + longrep 

내가 후크를 제거하면, 각각의 테스트가 한 번 실행 : 내 루트 폴더에서

나는 후크를 활성화하기 위해 conftest.py에 다음 코드를 추가했습니다.

후크를 사용하는 동안 테스트가 한 번 실행되게하려면 어떻게해야합니까?

답변

1

IT는 pytest_report_teststatus 후크 테스트 프로세스, (즉 분해, 전화, 설정) 동안 여러 번 호출 것 같다.

후크이 호출되었을 때를 감지하고 반환 값을 한 번만 탐지하는 조건문을 블록 시작 부분에 추가했습니다.

def pytest_report_teststatus(report): 
    if report.when == 'call': # <-- Added this line 
     if report.passed: 
      letter = '.' 
      longrep = ' \u2714 ' 
     elif report.skipped: 
      letter = 's' 
      longrep = ' \u27A5 ' 
     elif report.failed: 
      letter = 'F' 
      longrep = ' \u2717 ' 
     return report.outcome, letter, report.outcome.upper() + longrep 

if report.when == 'call'을 추가하면 문제가 해결됩니다.