Frage

Ich habe keine Antwort auf diese spezielle Frage gesehen (Testabdeckungstool für das Behave-Testframework) und ich habe keine Google-Suchergebnisse gesehen, die eine ausreichende Antwort lieferten.Daher...

Wie kann ich einen Code-Coverage-Bericht von Behave erhalten?Ich kann kaum glauben, dass es keine Python-Entwickler gibt, die die BDD-Methodik verwenden, und es fällt mir noch schwerer zu glauben, dass die Python-Entwickler, die BDD verwenden, dies ohne Statistiken zur Codeabdeckung aus ihren Funktionstests tun.Kann Coverage.py verwendet werden, um Behave zur Erzeugung von Codeabdeckung zu steuern?Wie?

War es hilfreich?

Lösung

Ich weiß nicht, wie ich benutze.Ich denke, Sie sollten sich mit der Berichterstattung benutzen können.Sie müssen angeben, welche Datei in die Datei einbezogen wird. (Ich habe es mit Gurke verwendet).Sehen Sie, ob dieses kann helfen.

Ich hoffe, diese Antwort auf Ihre Frage :)

generasacodicetagpre.

Andere Tipps

Befolgen Sie von Davids Vorschlag oben.

Angenommen, der zu testende Code enthält in einem App-Verzeichnis, fügen Sie Ihrem .coveragerc file:

hinzu: generasacodicetagpre.

vom Terminal:

generasacodicetagpre.

Sie können dann den Deckungsbericht oder die Abdeckung HTML als Normal verwenden.Wenn Sie nicht den App-DIR in Ihrer .coveragerc -Datei angeben, testen Sie die Berichterstattung alle lokalen Python-Bibliotheken in Ihrer Verhaltensinstallation.

Behave kann Junit-Abdeckungsdaten generieren und die Deckungspaket Sie können diese Daten aus mehreren Testläufen kombinieren und einen HTML-Bericht erstellen, den Sie durchsehen oder automatisch in Ihrer CI-Umgebung veröffentlichen können.

Hier sind die Aussagen, die ich derzeit verwende, um die Berichterstattung mit behave zu erstellen, zu kombinieren und darüber zu berichten:

cd your/repo/tests  # <-- Make sure you're inside your tests dir!
rm -rf behave-reports/*
behave --junit --junit-directory behave-reports
coverage combine
coverage html

Der rm -rf behave-reports/* Entfernt gewaltsam alles im behave-reports/-Verzeichnis, sodass ich garantiert entweder einen neuen Abdeckungsbericht oder gar nichts bekomme (was in meinem Fall zu einem Fehler in CI führt).Beachten Sie, dass Sie, wenn Sie Ihre Tests lokal ausführen, einen Eintrag zu Ihrem hinzufügen möchten .gitignore Datei (oder eine gleichwertige Datei) erstellen, damit Sie Ihre Testergebnisse nicht hinzufügen und festschreiben.

Laufverhalten mit --junit erzeugt eine Junit-Ausgabe, während die --junit-directory Flag teilt Verhalten mit, wohin die Junit-Daten auf die Festplatte geschrieben werden sollen.

Läuft coverage combine frisst die gesamte Codeabdeckung und kombiniert sie in einer einzigen Abdeckungsdatei.

Endlich, coverage html erstellt einen hübschen HTML-Bericht, der alle kombinierten Abdeckungsdaten enthält.

Eine weitere Option besteht darin, Coverage zu verwenden, um das Hauptskript von behave auszuführen:

coverage run /path/to/lib/python2.7/site-packages/behave/__main__.py

Natürlich möchten Sie dies in Ihrem angeben .coveragerc welche Quelldateien Sie einbinden möchten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top