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 ( listeners, String runName) PythonUnitTestResultParser ( listeners, String runName) Créez un nouveau | |
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 |
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 |