PythonUnitTestResultParser
public class PythonUnitTestResultParser
extends MultiLineReceiver
java.lang.Objek | ||
↳ | com.android.ddmlib.MultiLineReceiver | |
↳ | com.Android.tradefed.testtype.PythonUnitTestResultParser |
Menafsirkan keluaran pengujian yang dijalankan dengan kerangka kerja Python yang paling unittest dan menerjemahkannya menjadi panggilan pada serangkaian ITestInvocationListener
s. Keluaran dari pengujian ini mengikuti tata bahasa EBNF berikut:
TestReport ::= TestResult* Status Line TimeMetric [FailMessage*]. Hasil Tes ::= string \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d Status Tunggal. FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d Garis Traceback Garis. Status Tunggal ::= \u201cok\u201d | \u201kesalahan\u201d. TimeMetric ::= \u201cRan\u201d integer \u201ctests in\u201d float \u201ds\u201d. Status ::= \u201cOK\u201d | \u201cGAGAL (kesalahan=\u201d int \u201c)\u201d. Pelacakan balik ::= string+.
Contoh keluaran (lewat): 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) ... oke
--------------------------------------------------- -------------------- Jalankan 5 tes dalam 0,002 detik
OKE
Contoh keluaran (gagal) test_size (test_rangelib.RangeSetTest) ... ERROR
==================== ===== KESALAHAN: test_size (test_rangelib.RangeSetTest) ---------------------- ------------------------------------------------ Melacak kembali ( panggilan terakhir terakhir): File "test_rangelib.py", baris 129, di test_rangelib naikkan ValueError() ValueError --------------------------- ------------------------------------------- Menjalankan 1 tes dalam 0,001 detik GAGAL (kesalahan=1)
Contoh keluaran dengan beberapa kasus tepi (gagal): testError (foo.testFoo) ... ERROR testExpectedFailure (foo.testFoo) ... kegagalan yang diharapkan testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar . .. GAGAL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... melewatkan 'reason foo' testUnexpectedSuccess (foo.testFoo) ... kesuksesan tak terduga
==================== ===== KESALAHAN: testError (foo.testFoo) ---------------------- ------------------------------------------------ Melacak kembali ( panggilan terakhir terakhir): File "foo.py", baris 11, di testError self.assertEqual(2+2, 5/0) ZeroDivisionError: pembagian bilangan bulat atau modulo dengan nol
==================== ===== GAGAL: testFail (foo.testFoo) ---------------------- ------------------------------------------------ Melacak kembali ( panggilan terakhir terakhir): File "foo.py", baris 8, di testFail self.assertEqual(2+2, 5) AssertionError: 4 != 5
==================== ===== GAGAL: testFailWithDocString (foo.testFoo) foo bar -------------------- --------------------------------------------------- Traceback (panggilan terakhir terakhir): File "foo.py", baris 31, di testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5
--------------------------------------------------- -------------------- Jalankan 8 tes dalam 0,001 detik
GAGAL (kegagalan=2, kesalahan=1, dilewati=1, kegagalan yang diharapkan=1, keberhasilan tak terduga=1)
TODO: Pertimbangkan untuk melakukan refactoring seluruh kelas, penanganannya cukup berantakan saat ini.
Ringkasan
Konstruktor publik | |
---|---|
PythonUnitTestResultParser ( ITestInvocationListener listener, String runName) Buat | |
PythonUnitTestResultParser ( listeners, String runName) PythonUnitTestResultParser ( listeners, String runName) Buat | |
PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) Buat |
Metode publik | |
---|---|
void | finalizeParser () |
boolean | isCancelled () |
void | processNewLines (String[] lines) Proses output unittest Python dan laporkan hasil yang diurai. |
void | setFinalizeWhenParsing (boolean shouldFinalize) |
Konstruktor publik
PythonUnitTestResultParser
public PythonUnitTestResultParser (ITestInvocationListener listener, String runName)
Buat PythonUnitTestResultParser
baru yang melapor ke ITestInvocationListener
yang diberikan.
Parameter | |
---|---|
listener | ITestInvocationListener |
runName | String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName)
Buat PythonUnitTestResultParser
baru yang melapor ke ITestInvocationListener
yang diberikan.
Parameter | |
---|---|
listeners | |
runName | String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName, includeFilters, excludeFilters)
Buat PythonUnitTestResultParser
baru yang melapor ke ITestInvocationListener
tertentu, dengan filter penyertaan dan pengecualian yang ditentukan.
Parameter | |
---|---|
listeners | |
runName | String |
includeFilters | |
excludeFilters |
Metode publik
menyelesaikan Parser
public void finalizeParser ()
Dibatalkan
public boolean isCancelled ()
Kembali | |
---|---|
boolean |
prosesNewLines
public void processNewLines (String[] lines)
Proses output unittest Python dan laporkan hasil yang diurai.
Metode ini harus dipanggil hanya sekali dengan keluaran penuh, tidak seperti metode dasar di MultiLineReceiver
.
Parameter | |
---|---|
lines | String |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
Parameter | |
---|---|
shouldFinalize | boolean |