Come saltare forzatamente uno unit test in Django?
@skipif e @skipunless sono tutto ciò che ho trovato, ma voglio solo saltare un test in questo momento per scopi di debug mentre riesco a sistemare alcune cose.
Come saltare forzatamente uno unit test in Django?
@skipif e @skipunless sono tutto ciò che ho trovato, ma voglio solo saltare un test in questo momento per scopi di debug mentre riesco a sistemare alcune cose.
Risposte:
Il modulo unittest di Python ha alcuni decoratori:
C'è semplicemente vecchio @skip
:
from unittest import skip
@skip("Don't want to test")
def test_something():
...
Se non puoi usarlo @skip
per qualche motivo, @skipIf
dovrebbe funzionare. Basta ingannarlo per saltare sempre con l'argomento True
:
@skipIf(True, "I don't want to run this test yet")
def test_something():
...
Documenti su come saltare i test
Se stai semplicemente cercando di non eseguire determinati file di test, il modo migliore è probabilmente quello di utilizzare fab
o un altro strumento ed eseguire test particolari.
@skip
?
Django 1.10 consente l'uso di tag per gli unit test. È quindi possibile utilizzare il --exclude-tag=tag_name
flag per escludere determinati tag:
from django.test import tag
class SampleTestCase(TestCase):
@tag('fast')
def test_fast(self):
...
@tag('slow')
def test_slow(self):
...
@tag('slow', 'core')
def test_slow_but_core(self):
...
Nell'esempio precedente, per escludere i tuoi test con il slow
tag " " dovresti eseguire:
$ ./manage.py test --exclude-tag=slow
--exclude-tag
, ad esempio, --include-tag
ma questo comando è inesistente.