PythonUnitTestResultParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

java.lang.Object
com.android.ddmlib.MultiLineReceiver
com.android.tradefed.testtype.PythonUnitTestResultParser


Interprète la sortie des tests exécutés avec le framework unittest de Python et la traduit en appels sur une série de ITestInvocationListener s. La sortie de ces tests suit cette grammaire EBNF :

TestReport ::= TestResult* Line TimeMetric [FailMessage*] Status. TestResult ::= chaîne \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d SingleStatus. FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d Line Traceback Line. SingleStatus ::= \u201cok\u201d | \u201cERREUR\u201d. TimeMetric ::= \u201cRan\u201d entier \u201cteste 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) ... d'accord

-------------------------------------------------- -------------------- 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 --------------------------- ------------------------------------------------ A effectué 1 test en 0,001 s ÉCHEC (erreurs=1)

Exemple de sortie avec plusieurs cas extrêmes (échec) : testError (foo.testFoo) ... ERROR testExpectedFailure (foo.testFoo) ... échec attendu testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar . .. FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) barre foo ... ok testSkipped (foo.testFoo) ... sauté 'raison foo' testUnexpectedSuccess (foo.testFoo) ... succès inattendu

================================================= ==================== ERREUR : testError (foo.testFoo) ---------------------- ------------------------------------------------ Retraçage ( appel le plus récent en dernier) : 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 ( appel le plus récent en dernier) : Fichier "foo.py", ligne 8, dans testFail self.assertEqual(2+2, 5) AssertionError : 4 != 5

================================================= ==================== ÉCHEC : testFailWithDocString (foo.testFoo) barre foo -------------------- -------------------------------------------------- Traceback (appel le plus récent en dernier) : Fichier "foo.py", ligne 31, dans testFailWithDocString self.assertEqual(2+2, 5) AssertionError : 4 != 5

-------------------------------------------------- -------------------- A effectué 8 tests en 0,001 s

FAILED (échecs=2, erreurs=1, sauté=1, échecs attendus=1, succès inattendus=1)

À FAIRE : Envisagez de refactoriser la classe complète, la manipulation est assez compliquée en ce moment.

Résumé

Constructeurs publics

PythonUnitTestResultParser ( ITestInvocationListener listener, String runName)

Créez un nouveau PythonUnitTestResultParser qui rapporte au ITestInvocationListener donné.

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

Créez un nouveau PythonUnitTestResultParser qui rapporte aux ITestInvocationListener s 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 aux 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)

Traiter la sortie du test unitaire Python et rapporter les résultats analysés.

void setFinalizeWhenParsing (boolean shouldFinalize)

Constructeurs publics

PythonUnitTestResultParser

public PythonUnitTestResultParser (ITestInvocationListener listener, 
                String runName)

Créez un nouveau PythonUnitTestResultParser qui rapporte au ITestInvocationListener donné.

Paramètres
listener ITestInvocationListener

runName String

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

Créez un nouveau PythonUnitTestResultParser qui rapporte aux ITestInvocationListener s donnés.

Paramètres
listeners

runName String

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName, 
                 includeFilters, 
                 excludeFilters)

Créez un nouveau PythonUnitTestResultParser qui rend compte aux ITestInvocationListener donnés, avec des filtres d'inclusion et d'exclusion spécifiés.

Paramètres
listeners

runName String

includeFilters

excludeFilters

Méthodes publiques

finalizeParser

public void finalizeParser ()

est annulé

public boolean isCancelled ()

Retour
boolean

processNewLines

public void processNewLines (String[] lines)

Traiter la sortie du test unitaire Python et rapporter 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 dans MultiLineReceiver .

Paramètres
lines String

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

Paramètres
shouldFinalize boolean