2010-01-14 21 views

risposta

95

Singoli metodi di prova o classi possono essere disabilitati utilizzando il decoratore unittest.skip.

@unittest.skip("reason for skipping") 
def test_foo(): 
    print('This is foo test case.') 


@unittest.skip # no reason needed 
def test_bar(): 
    print('This is bar test case.') 

Per altre opzioni, consultare i documenti per Skipping tests and expected failures.

+5

In Python 3, la risposta di Akif sotto '@ unittest.SkipTest' funziona e non' @ unittest.skip' – lifebalance

+1

Sto usando Python 3.6.1 e '@ unittest.skip' funziona anche bene. – Pete

+1

@Pete, in Python 3.4.0, '@ unittest.skip' non funziona. – lifebalance

2

Il numero docs per 2.1 non specifica un metodo ignora o ignora.

In genere, tuttavia, blocco il commento quando necessario.

+0

Noufal è un buon punto, anche il nome del mangaling funziona. – Finglas

9

The latest version (2.7 - unreleased) supports test skipping/disabling like so. Potresti semplicemente prendere questo modulo e usarlo nella tua installazione Python esistente. Probabilmente funzionerà.

Prima di questo, ero solito rinominare i test che volevo passare a xtest_testname da test_testname.


Ecco uno script elisp rapido per eseguire questa operazione. Il mio elis è un po 'arrugginito quindi mi scuso in anticipo per eventuali problemi che ha. Non testato.

(defun disable_enable_test() 
    (interactive "") 
    (save-excursion 
    (beginning-of-line) 
    (search-forward "def") 
    (forward-char) 
    (if (looking-at "disable_") 
    (zap-to-char 1 ?_) 
     (insert "disable_")))) 
+0

+1, ma nell'intero progetto che sto lavorando tutti stanno usando python v2.6.2, e non credo che cambierà: /, ma è una soluzione, grazie – coelhudo

+0

Rinominare per ora. grazie – coelhudo

+0

Potresti modificare un po 'il tuo editor per darti una macro per abilitare/disabilitare un testcase ma parlo come utente di Emacs quindi ... :) –

22

È possibile utilizzare decoratori per disabilitare il test che può avvolgere la funzione e prevenire la googletest o pitone unit test per eseguire il TestCase.

def disabled(f): 
    def _decorator(): 
     print f.__name__ + ' has been disabled' 
    return _decorator 

@disabled 
def testFoo(): 
    '''Foo test case''' 
    print 'this is foo test case' 

testFoo() 

uscita:

testFoo has been disabled 
4

Ho appena rinominare un metodo di test case con una sottolineatura: test_myfunc diventa _test_myfunc.

5

È sufficiente posizionare il decoratore @unittest.SkipTest sopra il test.

+0

Non so chi sia stato. Ma stavo leggendo la documentazione e dice che SkipTest è un'eccezione. In ogni caso, è diverso da unittest.skip nel senso che skip non esegue mai il test (disabilitandolo), mentre lo scopo SkipTest deve essere generato se qualcosa non è previsto mentre il test è in esecuzione. Ho ragione? Interessante duro. – coelhudo

+0

'unittest.skip' (senza motivo) mi dà errore in Python 2 ma non in Python 3. – Akif

Problemi correlati