Coverage.py ermöglicht die Ausschluss von Code von Messungen über Kommentare in Python-Dateien. Im Gegensatz zu anderen Tools verwendet es anpassbare reguläre Ausdrücke für diese Ausschlüsse. Dieser regex-basierte Ansatz hat sich überraschend leistungsfähig erwiesen und ermöglicht Flexibilität jenseits einfacher Kommentar-Markierungen. Zeilen, die diesen regulären Ausdrücken entsprechen, sowie ihre mehrzeiligen Anweisungen und Blöcke, werden von Abdeckungsprüfungen ausgeschlossen. Ursprünglich für grundlegende Pragmas gedacht, ermöglichte dieses System auch Ausschlüsse ohne Pragmas, wie das automatische Ignorieren aller __repr__-Methoden. Die Leistung des Systems wurde weiter durch Drittanbieter-Plug-ins wie covdefaults und coverage-conditional-plugin verstärkt. Eine bedeutende Verbesserung ermöglichte es, reguläre Ausdrücke auf mehrzeilige Muster abzustimmen, was die Ausschlussfähigkeiten revolutionierte. Diese Änderung ermöglichte Funktionen wie das Ausschließen ganzer Dateien mit einem einzigen regulären Ausdrucksmuster. Eine weitere neue Funktion ermöglicht das Ausschließen von Code zwischen bestimmten Start- und End-Delimitern. Dennoch hat diese regex-Flexibilität Grenzen, wie zum Beispiel bei Zeichenkettenliterale, die pragma-Text enthalten. Komplexe reguläre Ausdrücke sind manchmal erforderlich für bestimmte Muster, können jedoch immer noch zu falschen Positiven führen. Trotz dieser Grenzen bietet der regex-Ansatz ein gutes Gleichgewicht zwischen Flexibilität, Leistung und praktischer Benutzerfreundlichkeit für realen Code.
nedbatchelder.com
Ned Batchelder: Coverage.py regex pragmas
