2017-03-24 11 views
0

pytest capsys fixture은 정말 유용하지만, 조명기로 포함될 때마다 즉시 모든 것을 캡처합니다. 테스트의 특정 라인 출력 만 캡처하고 싶습니다.명시 적으로 사용 가능한 capsys pytest 픽스쳐

def test_disabling_capturing(capsys): 
    print('this output is not captured') 
    with capsys.enabled(): 
     print('output is captured') 
    print('this output is also not captured') 

이 capsys 어떻게 든 조명기 가능합니다 : 그 반대 같은

def test_disabling_capturing(capsys): 
    print('this output is captured') 
    with capsys.disabled(): 
     print('output not captured, going directly to sys.stdout') 
    print('this output is also captured') 

하지만 내가 원하는 무엇인가 : 그것은 실제로 "장애인"컨텍스트를 제공 않습니다

?

답변

0

파이썬의 현재 버전은 이미 contextlib에 기능을 제공하기 때문에 필자는이 기능이 필요 없다고 결정했습니다. 조명기를 사용하는 것과는 대조적으로 컨텍스트 관리자를 가져 오는 것이 단점이 없습니다.

인터페이스는 별도로 제공하고 redirect_stdoutredirect_stderr이 약간 다르지만, 필요한 경우 capsys 제공 조명기 인터페이스 같은 종류로들을 포장하는 간단하다.