Stmts
относится к числу операторов в вашем коде.
Miss
относится к числу операторов, которые не были выполнены.
Cover
- тестовое покрытие, или (Stmts - Miss) / 100
.
Missing
содержит номера строк операторов Miss
.
Если охват не равен 100%, это означает, что есть части вашего кода, которые не охватываются вашими тестами, например:
def f(a, b):
if a > 0:
return a
elif a == 0:
return 0
else:
return b
def test_f():
assert f(10, 10)
Приведенный выше тест будет входить только в ветку a > 0
и поэтому будет иметь тестовое покрытие 33%.
Высокое покрытие не всегда хорошо (потому что простое покрытие кода не означает, что все случаи проверены адекватно), но низкое покрытие часто плохо (потому что это означает, что ваши тесты даже не затрагивают части вашего кода). [1115 ]
Может кто-либо из последовательностей ниже происходит в Вашем входе?
\\>
\\\>
\\\\>
\
blank
\
tab
\
newline
...
Если так, как Вы предлагаете рассматривать их?
В противном случае затем нулевая ширина оглядывается, утверждения добьются цели, при условии, что Ваш механизм регулярного выражения поддерживает ее. Это будет иметь место в любом механизме, который поддерживает регулярные выражения стиля Perl (включая Perl, PHP, и т.д.):
(?<!\\)[ \n\t<>]
Вышеупомянутое будет соответствовать любому незавершенному пространству, новой строке, вкладке или повернутым фигурным скобкам. Более в общем (использование \s
обозначить любые пробелы, включая \r
):
(?<!\\)\s
С другой стороны, использование дополнительной нотации без потребности в нулевой ширине оглядывается утверждение (но возможно менее эффективно):
(?:[^ \n\t<>]|\\[<>])
Можно также использовать изменение последнего для обработки \\>
, \\\>
, \\\\>
и т.д. случаи также некоторое конечное число предыдущих обратных косых черт, такие как:
(?:[^ \n\t<>]|(?:^|[^<>])[\\]{1,3,5,7,9}[<>])
Согласно grep странице справочника:
Выражение скобки является списком символов, включенных [и]. Это соответствует любому отдельному символу в том списке; если первый символ списка является каре ^ затем, это соответствует любому символу не в списке.
Это означает, что Вы не можете соответствовать последовательности символов такой как \<или \> только отдельные символы.
Если у Вас нет версии grep, созданного с Perl regex поддержка затем, можно использовать lookarounds как один из других упомянутых плакатов. Не все версии grep имеют эту поддержку все же.
Возможно, можно использовать egrep и поместить строку образца в кавычках. Это должно стереть потребность в выходе.