PythonUnitTestResultParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

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


Il 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. Le résultat de ces tests suit cet EBNF grammaire:

Rapport Test ::= TestResult* Line TimeMetric [FailMessage*] Status. Résultat du test ::= chaîne \u201c(\u201cchaîne\u201d)\u201d \u201c\u2026\u201d État unique. FailMessage ::= EqLine \u201cERREUR:\u201d chaîne \u201c(\u201cstring\u201d)\u201d Traçage de ligne Ligne. SingleStatus ::= \u201cok\u201d | \u201cERREUR\u201d. TimeMetric ::= \u201cRan\u201d entier \u201ctest dans\u201d float \u201ds\u201d. État ::= \u201cOK\u201d | \u201cÉCHEC (erreurs=\u201d int \u201c)\u201d. Traceback ::= string+

Exemple de résultat (réussite): 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

---------------------------------------------------------------------- J'ai exécuté 5 tests en 0,002 s

OK

Exemple de résultat (échec) test_size (test_rangelib.RangeSetTest) ... ERREUR

================================================================== ERREUR: taille_test (test_rangelib.RangeSetTest) ---------------------------------------------------------------------- Traceback (le plus récent) call last): Fichier "test_rangelib.py", ligne 129, dans test_rangelib monter ValueError() ValueError ---------------------------------------------------------------------- A exécuté 1 test en 0,001 s ÉCHEC (erreurs=1)

Exemple de résultat avec plusieurs cas particuliers (échec): testError (foo.testFoo) ... ERROR testexpectedFailure (foo.testFoo) ... échec attendu testFail (foo.testFoo) ... ÉCHEC testFailWithDocString (foo.testFoo) foo bar ... ÉCHEC testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... exclusivement 'reason foo testUnexpectedSuccess (foo.testFoo) ... opération inattendue

=================================================================== ERREUR: TestError (foo.testFoo) ---------------------------------------------------------------------- Suivi (dernier appel le plus récent): Fichier "foo.py", ligne 11, dans testError self.assertEqual(2+2, 5/0) ZeroDivisionError: division des entiers ou modulo par zéro

=================================================================================================================== ÉCHEC: testFail (foo.testFoo) ---------------------------------------------------------------------- Suivi (dernier appel le plus récent): Fichier "foo.py", ligne 8, dans testFail self.assertEqual(2+2, 5) Erreur d'assertion: 4 != 5

ÉCHEC: testFailWithDocString (foo.testFoo) barre foo ---------------------------------------------------------------------- Traceback (le plus récent) call last): Fichier "foo.py", ligne 31, dans testFailWithDocString self.assertEqual(2+2, 5) Erreur d'assertion: 4 != 5

---------------------------------------------------------------------- J'ai exécuté 8 tests en 0,001 s

ÉCHEC (échecs=2, erreurs=1, ignorés=1, échecs attendus=1, réussites inattendues=1)

À FAIRE: Envisagez de refactoriser l'ensemble de la classe, car la gestion est assez désordonnée pour le moment.

Résumé

Constructeurs publics

PythonUnitTestResultParser(ITestInvocationListener listener, String runName)

Créez un PythonUnitTestResultParser qui dépend du ITestInvocationListener donné.

PythonUnitTestResultParser( listeners, String runName)

Créez un PythonUnitTestResultParser qui génère des rapports sur les ITestInvocationListener donnés.

PythonUnitTestResultParser( listeners, String runName, includeFilters, excludeFilters)

Créez un PythonUnitTestResultParser qui génère des rapports sur les ITestInvocationListener données, avec les filtres "Inclure" et "Exclure".

Méthodes publiques

void finalizeParser()
boolean isCancelled()
void processNewLines(String[] lines)

Traitement de la sortie unittest Python et rapport des résultats analysés.

void setFinalizeWhenParsing(boolean shouldFinalize)

Constructeurs publics

PythonUnitTestResultParser

public PythonUnitTestResultParser (ITestInvocationListener listener, 
                String runName)

Créez un PythonUnitTestResultParser qui dépend du ITestInvocationListener donné.

Paramètres
listener ITestInvocationListener

runName String

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

Créez un PythonUnitTestResultParser qui génère des rapports sur les ITestInvocationListener donnés.

Paramètres
listeners

runName String

PythonUnitTestResultParser

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

Créez un PythonUnitTestResultParser qui génère des rapports sur les ITestInvocationListener données, avec les filtres "Inclure" et "Exclure".

Paramètres
listeners

runName String

includeFilters

excludeFilters

Méthodes publiques

finaliserParser

public void finalizeParser ()

est annulé

public boolean isCancelled ()

Renvoie
boolean

processNewLines

public void processNewLines (String[] lines)

Traitement de la sortie unittest Python et rapport des 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