일부 디버깅 (특히 pytest/testing/test_doctest.py)을 시도하고 있는데 IPython의 일부 코드를 단계별로 실행하려고합니다. 나는 파이 테스트 (pytest)에 대한 경험이 있지만, 결코 그걸 좋아하지 않는다. 그래서 나는 그것이하는 "마술"에 깊이 빠뜨리지 않았다._pytest.pytester.Testdir 인스턴스를 생성하는 방법
테스트 할 때 (일부 개체를 조사 할 가능성이 있음) testdir
이라는 인수가 있지만이 파일의 아무 곳에서도 testdir
이 무엇인지 또는 어떻게 구성 할 수 있는지는 알 수 없습니다.
일부 파기를 한 후에는 pytester
플러그인을 사용하여 pytest를 실행할 때 자동으로 생성되어 매개 변수로 함수에 전송되는 마술 픽스쳐 인 것 같습니다. 그 클래스를 추적 할 때, 어떤 마법을 통해 다시 구축됩니다. request
param. 코드는 그 마법의 진수를 알려주는데 도움이되지 않습니다. request
또는 만드는 법.
def test_reportinfo(self, testdir):
'''
Test case to make sure that DoctestItem.reportinfo() returns lineno.
'''
p = testdir.makepyfile(test_reportinfo="""
def foo(x):
'''
>>> foo('a')
'b'
'''
return 'c'
""")
items, reprec = testdir.inline_genitems(p, '--doctest-modules')
reportinfo = items[0].reportinfo()
assert reportinfo[1] == 1
을하고 IPython에서의 로직을 실행합니다. testdir
개체가 무엇인지 살펴보면 매우 멋지게 보입니다. 자동으로 파일을 만들고 명령 줄 대신 pytest를 문제없이 실행합니다. 이 중 하나를 어떻게 만들 수 있습니까? 제가 이것을 놓친 문서가 있습니까? 명확하지 않고 덜 모호하게 보입니다.
만약 내가 이런 식으로 사용하고 싶다면 내 검사는 마법 testdir
매개 변수가 약간 더 명백해 지도록 할 수있는 방법이있다. 그래서 나는 다음 코더가 그것을 보았다. 오전?