Sto usando expectedFailure
perché c'è un bug che voglio registrare che non posso correggere in questo momento, ma voglio tornare ad esso in futuro. La mia comprensione di expectedFailure
è che conterebbe il test come passato ma nel riepilogo dico che ci sono stati x il numero di errori previsti (simile al modo in cui funziona con i taccetti saltati).expectedFailure viene conteggiato come errore anziché come passato
Tuttavia, quando eseguo il mio suite di test ottengo il seguente:
$ ./manage.py test eav.QueryTest
Creating test database for alias 'default'...
.EE
======================================================================
ERROR: test_q_object_with_exclude (eav.tests.managers.QueryTest)
----------------------------------------------------------------------
_ExpectedFailure
======================================================================
ERROR: test_q_objects_unioned (eav.tests.managers.QueryTest)
----------------------------------------------------------------------
_ExpectedFailure
----------------------------------------------------------------------
Ran 3 tests in 1.095s
FAILED (errors=2)
Destroying test database for alias 'default'...
Non sono sicuro se questo si trova con test runner di Django o qualcosa che sto facendo male.
@unittest.expectedFailure
def test_q_object_with_exclude(self):
# Everyone except Bob
q_set = eav_m.Process.objects.exclude(
Q(eav__details__city__contains='Y'))
self.assertEqual(q_set.count(), 4)
@JonathanHartley Non proprio. I test falliscono in 2 modi. Se falliscono perché alcuni affermano fallito, allora lo stato è "FAIL", ma se c'è un crash come un'eccezione sollevata, allora lo stato è "ERRORE". expectedFailure significa che ti aspetti che un test fallisca, ma ciò non significa che ti aspettavi un crash. – binW