2013-01-02 1 views

답변

0

unittest.TestCase.id() 클래스 이름, 메소드 이름을 포함한 전체 세부 정보를 반환합니다. 여기에서 테스트 메소드 이름을 추출 할 수 있습니다. 테스트를 실행할 때 예외가 있는지 확인하여 결과를 가져올 수 있습니다. 테스트가 실패하면 sys.exc_info()가 None을 반환하면 테스트가 실패하고 그렇지 않으면 테스트가 통과합니다. 그렇지 않으면 else 테스트가 실패합니다.

7

어제 같은 문제에 직면하고

공식 매뉴얼은 나를 위해 도움이되었습니다 :-) 나는 그것을 해결 : http://pytest.org/latest/plugins.html#hook-specification-and-validation

매직 pytest 특별한 후크를 사용하여이 실현. 이 훅은 "pytest_runtest_protocol"입니다. 예외 캡처 및보고 훅 호출을 포함하여 주어진 테스트 항목에 대해 runtest_setup/call/teardown 프로토콜을 구현합니다.

테스트가 완료되면 (시작 또는 분해 또는 테스트와 같이) 호출되는이 후크입니다. 내가 시작, 해체 및 test_tc15 기능을 가지고 test_rest_author.py 파일에서

./rest/ 
├── conftest.py 
├── __init__.py 
└── test_rest_author.py 

,하지만 난 단지 test_tc15의 FUNC에 대한 결과와 이름을 표시하려면 :

나는 내 테스트 디렉토리에 다음 트리가 있습니다. conftest.py 파일에서

:

import pytest 
from _pytest.runner import runtestprotocol 

def pytest_runtest_protocol(item, nextitem): 
    reports = runtestprotocol(item, nextitem=nextitem) 
    for report in reports: 
     if report.when == 'call': 
      print '\n%s --- %s' % (item.name, report.outcome) 
    return True 

을하고 스크립트를 실행하는 경우 다음을 수행 할 수 있습니다 (경고 : http://pytest.org/latest/plugins.html#conftest-py-local-per-directory-plugins : 같은 이름의 파일을 만들고, 그 자세한 내용은 pytest 특수 파일,의 PLS이 읽기)

$ py.test ./rest/test_rest_author.py 
====== test session starts ====== 
/test_rest_author.py::TestREST::test_tc15 PASSED 
test_tc15 --- passed 
======== 1 passed in 1.47 seconds ======= 

이익

:-) : 결과 및 테스트의 이름 참조
관련 문제