Ваше регулярное выражение было __*
, которое соответствует одному или нескольким символам подчеркивания, поэтому оно исключает любую строку, в которой есть символы подчеркивания. Это не то, что вы хотите.
Это должно работать, чтобы исключить любую функцию определения функции, которая начинается с двойным подчеркиванием:
[report]
exclude_lines =
def __
Это, кажется, как плохая идея для меня. Вы должны знать, правильно ли протестированы эти функции. Они вызываются из вашего общедоступного API: как вы можете утверждать, что ваши общедоступные функции API полностью протестированы, если вы не измеряете охват функций, которые они называют?
Чтобы исключить частные методы, но не специальные методы, вы можете попробовать более сложные регулярные выражения:
[report]
exclude_lines =
def __[^(]*[^_][(]
, но это становится своего рода сумасшедший ...
Мы в необходимости тестирования только общественности API, а не частные методы, и мы получили как albot 100 или более из них, поэтому запись везде '# pragma' не является вариантом. Нет ли взломать это? – MaLiN2223
Вы можете перепроектировать свои вызовы API, чтобы наследовать что-то разумное в другом файле, поместить частные методы в эти объекты и игнорировать файл, который вы сейчас импортируете. – ti7