Frage zu Testabdeckung und Verantwortlichkeiten der jeweiligen Testklasse

Hallo,
offensichtlich ist es ja so, dass beim Ausführen der Unittests nicht geschaut wird wer die Methoden verwendet bzw. tested.
Nehmen wir mal eine Klasse "Vector" und eine Methode "angle" und in TestVector.py wurde vergessen diese Methode zu testen; allerdings wurde später die Methode "angle" in einem Algorithmus verwendet der vollständig getested wurde.
Fazit: Die Testabdeckung ist 100% obwohl der eigentlich dafür verantwortliche Test es nicht behandelt.
Ich hätte mir durch einen geeigneten Mechanism gewünscht das ich gewarnt werde das TestVector.py nicht alle Vector.py Methoden behandelt.
Gibt es sowas?
(Ich verwende übrigens nosetests)
Grüße und Danke im Vorraus Thomas

Moin
2013/12/20 Thomas Lehmann thomas.lehmann.private@gmail.com:
Hallo,
offensichtlich ist es ja so, dass beim Ausführen der Unittests nicht geschaut wird wer die Methoden verwendet bzw. tested.
Nehmen wir mal eine Klasse "Vector" und eine Methode "angle" und in TestVector.py wurde vergessen diese Methode zu testen; allerdings wurde später die Methode "angle" in einem Algorithmus verwendet der vollständig getested wurde.
Fazit: Die Testabdeckung ist 100% obwohl der eigentlich dafür verantwortliche Test es nicht behandelt.
Ich hätte mir durch einen geeigneten Mechanism gewünscht das ich gewarnt werde das TestVector.py nicht alle Vector.py Methoden behandelt.
Gibt es sowas?
coverage
macht ne Analyse welcher Code nicht durch Tests abgedeckt ist.
https://pypi.python.org/pypi/pytest-cov
(Ich verwende übrigens nosetests)
(kann ich nichts zu sagen)
Viele Grüße Reimar
Grüße und Danke im Vorraus Thomas
python-de maillist - python-de@python.org https://mail.python.org/mailman/listinfo/python-de

Reimar Bauer schrieb:
2013/12/20 Thomas Lehmann thomas.lehmann.private@gmail.com:
Hallo,
offensichtlich ist es ja so, dass beim Ausführen der Unittests nicht geschaut wird wer die Methoden verwendet bzw. tested.
Nehmen wir mal eine Klasse "Vector" und eine Methode "angle" und in TestVector.py wurde vergessen diese Methode zu testen; allerdings wurde später die Methode "angle" in einem Algorithmus verwendet der vollständig getested wurde.
Fazit: Die Testabdeckung ist 100% obwohl der eigentlich dafür verantwortliche Test es nicht behandelt.
Ich hätte mir durch einen geeigneten Mechanism gewünscht das ich gewarnt werde das TestVector.py nicht alle Vector.py Methoden behandelt.
Gibt es sowas?
coverage
macht ne Analyse welcher Code nicht durch Tests abgedeckt ist.
Reimars Verweis auf coverage ist richtig, nur der URL ist falsch. Reimer hat den URL für das pytest Plugin für coverage angegeben. coverage findest du hier:
http://nedbatchelder.com/code/coverage/
Viele Grüße
Markus

Am Fri, 20 Dec 2013 08:08:35 +0100 schrieb Reimar Bauer rb.proj@gmail.com:
Moin
2013/12/20 Thomas Lehmann thomas.lehmann.private@gmail.com:
Hallo,
offensichtlich ist es ja so, dass beim Ausführen der Unittests nicht geschaut wird wer die Methoden verwendet bzw. tested.
Nehmen wir mal eine Klasse "Vector" und eine Methode "angle" und in TestVector.py wurde vergessen diese Methode zu testen; allerdings wurde später die Methode "angle" in einem Algorithmus verwendet der vollständig getested wurde.
Fazit: Die Testabdeckung ist 100% obwohl der eigentlich dafür verantwortliche Test es nicht behandelt.
Ich hätte mir durch einen geeigneten Mechanism gewünscht das ich gewarnt werde das TestVector.py nicht alle Vector.py Methoden behandelt.
Gibt es sowas?
coverage
macht ne Analyse welcher Code nicht durch Tests abgedeckt ist.
Aber coverage stellt dann auch nur fest, das die Funktion angle verwendet wurde und der Code durchlaufen ist.
Eine Möglichkeit wäre, die unittests mit coverage auszuführen, den Report speichern, dann die weiteren Tests (Integrationtests, Functionaltests, etc) jeweils wieder einzeln ausführen und die Reports speichern.
Und ansonsten bleibt die Erkenntnis, das coverage nicht alles ist...
- Arnold
participants (4)
-
Arnold Krille
-
Markus Zapke-Gründemann
-
Reimar Bauer
-
Thomas Lehmann