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 qui rend compte au ITestInvocationListener donné.

PythonUnitTestResultParser ( listeners, String runName) PythonUnitTestResultParser ( listeners, String runName)

Créez un nouveau PythonUnitTestResultParser qui rend compte des ITestInvocationListener donnés.

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 PythonUnitTestResultParser qui rend compte des ITestInvocationListener donnés, avec des filtres d'inclusion et d'exclusion spécifiés.

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