Buildbot analysiert die Python-Unit-Testergebnisse

8

Ich habe eine Testsuite, die Testergebnisse im Python Unit Test-Format ausgibt: Ссылка

Gibt es ein existierendes Buildbot-Modul / Plugin, das dieses Formular analysieren kann?

Beispiel:

%Vor%

Ich habe einen benutzerdefinierten Parser geschrieben, aber nur die grundlegenden Fälle. Lohnt es sich, es für alle Varianten des Python-Unit-Testformats umfassend zu gestalten.

    
Ricklon 15.10.2010, 15:15
quelle

1 Antwort

3

Nein, es macht keinen Sinn, einen Parser zu entwickeln. Sie können die entsprechenden Informationen von Klassen im Modul runner.py abrufen.

Erwägen Sie, beide Klassen TextTestRunner und TextTestResult mit Ihrer benutzerdefinierten Logik (Python 2.7) zu erweitern. Die Ausgabe, die Sie aufgelistet haben, wird von TextTestResult erzeugt.

Alternativ können Sie nur TextTestResult erweitern und das Klassenattribut TextTestRunner.resultclass ändern, um es auf den Namen Ihrer neuen Erweiterungsklasse zu setzen.

Die Daten, die Sie aus TextTestResult extrahieren und in eine Liste von Wörterbüchern einfügen können, sind größer oder entsprechen den Daten, die Ihr Parser extrahieren kann.

Das Unittest-Framework erlaubt solche Tricks aufgrund seines flexiblen Designs. Ich hoffe, das war hilfreich.

[ BEARBEITEN ]

Ich würde die Veröffentlichung Ihrer bisherigen Ergebnisse (z. B. als Open-Source-Code auf github) als sehr nützlich für Leute, die Ihre Frage finden, finden!

Nachdem ich gesagt habe, dass ich bezweifle, dass es leicht wäre, den eigentlichen Parser über das grundlegende Regexp-Parsing hinaus zu verbessern.

Wenn Sie immer noch den Text-Parsing-Ansatz verfolgen möchten, müssen Sie möglicherweise alle Varianten des Python-Unit-Testformats aufzählen und beschreiben, die Sie abdecken / unterstützen möchten. Wenn Sie Glück haben, solch eine Beschreibung in Form einer kontextfreien Grammatik zu schreiben, dann könnten Sie vielleicht einen Parser dafür entwickeln, der "diese" Fälle als eine Form einer Sprache abdeckt.

Bitte nehmen Sie mich zur Vorsicht: Wenn Text-Parsing nicht durch einfaches Regexping abgedeckt ist und Sie die Möglichkeit haben, eine irreguläre (kontextsensitive) Sprache zu parsen, werden Sie höchstwahrscheinlich Schwierigkeiten haben erreichen.

    
Yauhen Yakimovich 22.01.2011, 01:24
quelle