PythonUnitTestResultParser
public class PythonUnitTestResultParser
extends MultiLineReceiver
java.lang.Object | ||
↳ | com.android.ddmlib.MultiLineReceiver | |
↳ | com.android.tradefed.testtype.PythonUnitTestResultParser |
Interprète le résultat des tests exécutés avec le framework unittest de Python et le traduit en appels sur une série de ITestInvocationListener
. La sortie de ces tests suit cette grammaire EBNF :
TestReport ::= Ligne TestResult* TimeMetric [FailMessage*] Statut. TestResult ::= chaîne \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d SingleStatus. FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d Ligne de traçage de ligne. SingleStatus ::= \u201cok\u201d | \u201cERREUR\u201d. TimeMetric ::= \u201cRan\u201d entier \u201ctests dans\u201d float \u201ds\u201d. Statut ::= \u201cOK\u201d | \u201cÉCHEC (erreurs=\u201d int \u201c)\u201d. Traceback ::= chaîne+.
Exemple de sortie (passage) : test_size (test_rangelib.RangeSetTest) ... ok test_str (test_rangelib.RangeSetTest) ... ok test_subtract (test_rangelib.RangeSetTest) ... ok test_to_string_raw (test_rangelib.RangeSetTest) ... ok test_union (test_rangelib. RangeSetTest) ... ok
-------------------------------------------------- -------------------- A effectué 5 tests en 0,002 s
D'ACCORD
Exemple de sortie (échec) test_size (test_rangelib.RangeSetTest) ... ERREUR
=================================================== ==================== ERREUR : test_size (test_rangelib.RangeSetTest) ---------------------- ------------------------------------------------ Retraçage ( dernier appel le plus récent) : Fichier "test_rangelib.py", ligne 129, dans test_rangelib raise ValueError() ValueError --------------------------- ------------------------------------------------ 1 test effectué en 0,001 s a échoué (erreurs=1)
Exemple de sortie avec plusieurs cas extrêmes (échec) : testError (foo.testFoo) ... ERREUR testExpectedFailure (foo.testFoo) ... échec attendu testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar . .. FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... ignoré 'raison foo' testUnexpectedSuccess (foo.testFoo) ... succès inattendu
=================================================== ==================== ERREUR : testError (foo.testFoo) ---------------------- ------------------------------------------------ Retraçage ( dernier appel le plus récent) : Fichier "foo.py", ligne 11, dans testError self.assertEqual(2+2, 5/0) ZeroDivisionError : division entière ou modulo par zéro
=================================================== ==================== ÉCHEC : testFail (foo.testFoo) ---------------------- ------------------------------------------------ Retraçage ( dernier appel le plus récent) : Fichier "foo.py", ligne 8, dans testFail self.assertEqual(2+2, 5) AssertionError: 4 != 5
=================================================== ==================== ÉCHEC : testFailWithDocString (foo.testFoo) foo bar -------------------- -------------------------------------------------- Traceback (dernier appel le plus récent) : Fichier "foo.py", ligne 31, dans testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5
-------------------------------------------------- -------------------- A effectué 8 tests en 0,001 s
ÉCHEC (échecs=2, erreurs=1, ignoré=1, échecs attendus=1, succès inattendus=1)
À FAIRE : Pensez à refactoriser la classe complète, la gestion est assez compliquée en ce moment.
Résumé
Constructeurs publics | |
---|---|
PythonUnitTestResultParser ( ITestInvocationListener listener, String runName) Créez un nouveau | |
PythonUnitTestResultParser ( listeners, String runName) PythonUnitTestResultParser ( listeners, String runName) Créez un nouveau | |
PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) Créez un nouveau |
Méthodes publiques | |
---|---|
void | finalizeParser () |
boolean | isCancelled () |
void | processNewLines (String[] lines) Traitez la sortie du test unitaire Python et rapportez les résultats analysés. |
void | setFinalizeWhenParsing (boolean shouldFinalize) |
Constructeurs publics
PythonUnitTestResultParser
public PythonUnitTestResultParser (ITestInvocationListener listener, String runName)
Créez un nouveau PythonUnitTestResultParser
qui rend compte au ITestInvocationListener
donné.
Paramètres | |
---|---|
listener | ITestInvocationListener |
runName | String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName)
Créez un nouveau PythonUnitTestResultParser
qui rend compte des ITestInvocationListener
donnés.
Paramètres | |
---|---|
listeners | |
runName | String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName, includeFilters, excludeFilters)
Créez un nouveau PythonUnitTestResultParser
qui rend compte des ITestInvocationListener
donnés, avec des filtres d'inclusion et d'exclusion spécifiés.
Paramètres | |
---|---|
listeners | |
runName | String |
includeFilters | |
excludeFilters |
Méthodes publiques
finaliserParser
public void finalizeParser ()
est annulé
public boolean isCancelled ()
Retour | |
---|---|
boolean |
processusNouvellesLignes
public void processNewLines (String[] lines)
Traitez la sortie du test unitaire Python et rapportez les résultats analysés.
Cette méthode ne doit être appelée qu'une seule fois avec la sortie complète, contrairement à la méthode de base de MultiLineReceiver
.
Paramètres | |
---|---|
lines | String |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
Paramètres | |
---|---|
shouldFinalize | boolean |