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 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 ::= \u201cExécuté\u201d des tests entiers \u201cdans\u201d des nombres à virgule flottante \u201ds\u201d. État ::= \u201cOK\u201d | \u201cÉCHEC (erreurs=\u201d int \u201c)\u201d. Traceback ::= chaîne+.
Exemple de sortie (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
---------------------------------------------------------------------- Exécuté 5 tests en 0,002 s
OK
Exemple de résultat (échoué) test_size (test_rangelib.RangeSetTest) ... ERREUR
====================================================================== 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 sortie avec plusieurs cas particuliers (é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 (call le plus récent en dernier): Fichier "foo.py", ligne 11, dans testError self.assertEqual(2+2, 5/0) ZeroDivisionError: division ou modulo entier par zéro
====================================================================== ÉCHEC: testFail (foo.testFoo) ---------------------------------------------------------------------- Traceback (l'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) foo bar ---------------------------------------------------------------------- Traceback (l'appel le plus récent en dernier): Fichier "foo.py", ligne 31, dans testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5
---------------------------------------------------------------------- 8 tests exécutés en 0,001 s
FAILED (échecs=2, erreurs=1, ignorés=1, échecs attendus=1, succès inattendus=1)
À FAIRE: Envisagez de refactoriser la classe complète. La gestion est assez désordonnée pour le moment.
Résumé
Constructeurs publics | |
---|---|
PythonUnitTestResultParser(
Créez un |
|
PythonUnitTestResultParser(
Créez une |
Méthodes publiques | |
---|---|
void
|
finalizeParser()
|
boolean
|
isCancelled()
|
void
|
processNewLines(String[] lines)
Traitez la sortie du test unitaire Python et signalez les résultats analysés. |
void
|
setFinalizeWhenParsing(boolean shouldFinalize)
|
Constructeurs publics
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName)
Créez un PythonUnitTestResultParser
qui rend compte aux ITestInvocationListener
donnés.
Paramètres | |
---|---|
listeners |
|
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName, includeFilters, excludeFilters)
Créez une PythonUnitTestResultParser
qui envoie des rapports aux ITestInvocationListener
données, 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 ()
isCancelled
public boolean isCancelled ()
Renvoie | |
---|---|
boolean |
processNewLines
public void processNewLines (String[] lines)
Traitez la sortie du test unitaire 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 |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
Paramètres | |
---|---|
shouldFinalize |
boolean |