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

TestReport ::= TestResult* Line TimeMetric [FailMessage*] Status. TestResult ::= string \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d SingleStatus. FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d Line Traceback Line. SingleStatus ::= \u201cok\u201d | \u201cERROR\u201d. TimeMetric ::= \u201cRan\u201d integer \u201ctests in\u201d float \u201ds\u201d. Status ::= \u201cOK\u201d | \u201cFAILED (errors=\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) ... ok

---------------------------------------------------------------------- Ran 5 tests in 0.002s

OK

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

===================================================================== ERROR: test_size (test_rangelib.RangeSetTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_rangelib.py", line 129, in test_rangelib raise ValueError() ValueError ---------------------------------------------------------------------- Ran 1 test in 0.001s FAILED (errors=1)

Exemple de résultat avec plusieurs cas extrêmes (échec) : testError (foo.testFoo) ... ERROR testExpectedFailure (foo.testFoo) ... expected failure testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar ... FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... skipped 'reason foo' testUnexpectedSuccess (foo.testFoo) ... unexpected success

====================================================================== ERROR: testError (foo.testFoo) ---------------------------------------------------------------------- Traceback (most recent call last): File "foo.py", line 11, in testError self.assertEqual(2+2, 5/0) ZeroDivisionError: integer division or modulo by zero

====================================================================== ÉCHEC : testFail (foo.testFoo) ---------------------------------------------------------------------- Traceback (most recent call last): File "foo.py", line 8, in testFail self.assertEqual(2+2, 5) AssertionError: 4 != 5

====================================================================== FAIL: testFailWithDocString (foo.testFoo) foo bar ---------------------------------------------------------------------- Traceback (most recent call last): File "foo.py", line 31, in testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5

---------------------------------------------------------------------- Ran 8 tests in 0.001s

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

TODO: Consider refactoring the full class, handling is quite messy right now.

Résumé

Constructeurs publics

PythonUnitTestResultParser( listeners, String runName)

Crée un PythonUnitTestResultParser qui dépend des ITestInvocationListener spécifiés.

PythonUnitTestResultParser( listeners, String runName, includeFilters, excludeFilters)

Créez un PythonUnitTestResultParser qui génère des rapports pour les ITestInvocationListener spécifiés, avec les filtres d'inclusion et d'exclusion spécifiés.

Méthodes publiques

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

Traitez la sortie unittest de Python et signalez les résultats analysés.

void setFinalizeWhenParsing(boolean shouldFinalize)

Constructeurs publics

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

Crée un PythonUnitTestResultParser qui dépend des ITestInvocationListener spécifiés.

Paramètres
listeners

runName String

PythonUnitTestResultParser

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

Créez un PythonUnitTestResultParser qui génère des rapports pour les ITestInvocationListener spécifiés, avec les filtres d'inclusion et d'exclusion spécifiés.

Paramètres
listeners

runName String

includeFilters

excludeFilters

Méthodes publiques

finalizeParser

public void finalizeParser ()

isCancelled

public boolean isCancelled ()

Renvoie
boolean

processNewLines

public void processNewLines (String[] lines)

Traitez la sortie unittest de Python et signalez 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 : tableau contenant les nouvelles lignes.

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

Paramètres
shouldFinalize boolean