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 ITestInvocationListeners. 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
====================================================================== FAIL: 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
FAILED (failures=2, errors=1, skipped=1, expected failures=1, unexpected successes=1)
À FAIRE : Envisager de refactoriser la classe complète. La gestion est actuellement assez désordonnée.
Résumé
Constructeurs publics | |
|---|---|
PythonUnitTestResultParser(ITestInvocationListener listener, String runName)
Crée un |
|
PythonUnitTestResultParser(Collection<ITestInvocationListener> listeners, String runName)
Crée un |
|
PythonUnitTestResultParser(Collection<ITestInvocationListener> listeners, String runName, Set<String> includeFilters, Set<String> excludeFilters)
Crée un |
|
Méthodes publiques | |
|---|---|
void
|
finalizeParser()
|
boolean
|
isCancelled()
|
void
|
processNewLines(String[] lines)
Traite le résultat du test unitaire Python et signale les résultats analysés. |
void
|
setFinalizeWhenParsing(boolean shouldFinalize)
|
Constructeurs publics
PythonUnitTestResultParser
public PythonUnitTestResultParser (ITestInvocationListener listener, String runName)
Crée un PythonUnitTestResultParser qui génère des rapports pour le ITestInvocationListener donné.
| Paramètres | |
|---|---|
listener |
ITestInvocationListener |
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (Collection<ITestInvocationListener> listeners, String runName)
Crée un PythonUnitTestResultParser qui génère des rapports pour les ITestInvocationListener donnés.
| Paramètres | |
|---|---|
listeners |
Collection |
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (Collection<ITestInvocationListener> listeners, String runName, Set<String> includeFilters, Set<String> excludeFilters)
Crée un PythonUnitTestResultParser qui génère des rapports pour les ITestInvocationListener donnés, avec des filtres d'inclusion et d'exclusion spécifiés.
| Paramètres | |
|---|---|
listeners |
Collection |
runName |
String |
includeFilters |
Set |
excludeFilters |
Set |
Méthodes publiques
finalizeParser
public void finalizeParser ()
isCancelled
public boolean isCancelled ()
| Renvoie | |
|---|---|
boolean |
|
processNewLines
public void processNewLines (String[] lines)
Traite le résultat du test unitaire Python et signale les résultats analysés.
Contrairement à la méthode de base dans
MultiLineReceiver, cette méthode ne doit être appelée qu'une seule fois avec le résultat complet.
| Paramètres | |
|---|---|
lines |
String : tableau contenant les nouvelles lignes. |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
| Paramètres | |
|---|---|
shouldFinalize |
boolean |