가끔씩 나는 굳이 확실한 조건을 처리 할 것입니다.하지만 그것이 나오기위한 예제를 생각할 수 없기 때문에 테스트 케이스를 찾을 수 없습니다. 나는 내 코드에 pragma를 추가하는 방법이 있는지 궁금하다. 미래에 어떤 변화가있을 경우 우연히이 줄을 감싸기 시작한다. 필요한 테스트 케이스를 생성하지만 구현 세부 사항으로이 라인의 범위를 허무하게 남겨 둡니다.적용 범위에 해당하는 xfail이 있습니까?
mysquare.py
에서 :
def mysquare(x):
ov = x * x
if abs(ov) != ov or type(abs(ov)) != type(ov):
# Always want this to be positive, though why would this ever fail?!
ov = abs(ov) # pragma: nocover
return ov
그런 다음 내 테스트 스위트 I로 시작 :이의 인위적인 예를 마련했습니다
from hypothesis import given
from hypothesis.strategies import one_of, integers, floats
from mysquare import mysquare
NUMBERS = one_of(integers(), floats()).filter(lambda x: x == x)
@given(NUMBERS)
def test_mysquare(x):
assert mysquare(x) == abs(x * x)
@given(NUMBERS)
def test_mysquare_positive(x):
assert mysquare(x) == abs(mysquare(x))
nocover
라인이 명중되지 않습니다 만, 그건 내가 도달 할 수있는 방법을 생각할 수 없기 때문입니다! 그러나 먼 미래의 어떤 시점에서, 나는 mysquare
이 도 지원 복소수는, 그래서 NUMBERS
을 변경해야한다고 결정 :
NUMBERS = one_of(integers(), floats(),
complex_numbers()).filter(lambda x: x == x)
갑자기 예기치 않게 선을 포함하고있어,하지만 난 경고 아니에요 이 사실. nocover
과 같은 것이 있나요? pytest.xfail
과 같은 것입니까? - 특정 라인이 테스트없이 처리된다는 긍정적 인 주장입니까? 바람직하게는 pytest
과 호환됩니다.