2010-01-14 12 views

Respuesta

95

Los métodos de prueba individuales o las clases se pueden desactivar mediante el decorador 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.') 

Para otras opciones, vea los documentos para Skipping tests and expected failures.

+5

En Python 3, la respuesta de Akif debajo de '@ unittest.SkipTest' funciona y no' @ unittest.skip' – lifebalance

+1

Estoy usando Python 3.6.1 y '@ unittest.skip' también funciona bien. – Pete

+1

@Pete, en Python 3.4.0, '@ unittest.skip' no funciona. – lifebalance

2

El docs para 2.1 no especifica un método de ignorar u omitir.

Por lo general, bloqueo los comentarios cuando sea necesario.

+0

Noufal hace un buen punto, mangaling el nombre funciona también. – Finglas

9

The latest version (2.7 - unreleased) supports test skipping/disabling like so. Puede obtener este módulo y usarlo en su instalación de Python existente. Probablemente funcionará.

Antes de esto, solía cambiar el nombre de las pruebas que quería omitidas a xtest_testname desde test_testname.


Aquí hay una secuencia de comandos elisp rápida para hacer esto. Mi elisp está un poco oxidado, así que me disculpo de antemano por cualquier problema que tenga. No probado.

(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, pero en todo el proyecto que estoy trabajando todo el mundo está usando python v2.6.2, y no creo que esto cambie: /, pero es una solución, gracias – coelhudo

+0

Renombrado por ahora. gracias – coelhudo

+0

Podría ajustar un poco su editor para darle una macro para habilitar/deshabilitar un caso de prueba pero hablo como un usuario de Emacs así que ... :) –

22

Puede utilizar decoradores para desactivar la prueba que puede envolver la función y prevenir la prueba unitaria googletest o Python para ejecutar el caso de prueba.

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() 

Salida:

testFoo has been disabled 
4

acabo de cambiar el nombre de un método de caso de prueba con un guión: test_myfunc convierte _test_myfunc.

5

Simplemente colocando @unittest.SkipTest decorador encima de la prueba es suficiente.

+0

No sé quién lo hizo. Pero, estaba leyendo la documentación y dice que SkipTest es una excepción. De todos modos, es diferente de unittest.skip en el sentido de que omitir nunca ejecuta la prueba (inhabilitándolo), mientras que la finalidad de SkipTest es aumentar si algo no esperado ocurre mientras se está ejecutando la prueba. ¿Estoy en lo cierto? Interesante duro. – coelhudo

+0

'unittest.skip' (sin razón) me da error en Python 2 pero no en Python 3. – Akif

Cuestiones relacionadas