2010-01-14 6 views

Répondre

95

Des méthodes de test individuelles ou des classes peuvent toutes deux être désactivées à l'aide du décorateur 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.') 

Pour les autres options, voir les documents relatifs à Skipping tests and expected failures.

+5

En Python 3, la réponse d'Akif ci-dessous '@ unittest.SkipTest' fonctionne et non @ @ unittest.skip' – lifebalance

+1

J'utilise Python 3.6.1 et' @ unittest.skip' fonctionne aussi très bien. – Pete

+1

@Pete, en Python 3.4.0, '@ unittest.skip' ne fonctionne pas. – lifebalance

2

Les docs pour 2.1 ne spécifient pas de méthode ignore ou skip.

Habituellement cependant, je bloque le commentaire en cas de besoin.

+0

Noufal fait un bon point, mangeant le nom fonctionne aussi. – Finglas

9

The latest version (2.7 - unreleased) supports test skipping/disabling like so. Vous pouvez simplement obtenir ce module et l'utiliser sur votre installation Python existante. Cela fonctionnera probablement.

Auparavant, je renommais les tests que je voulais passer à xtest_testname de test_testname.


Voici un script rapide pour cela. Mon éléphant est un peu rouillé alors je m'excuse d'avance pour tous les problèmes qu'il a. Non testé

(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, mais dans tout le projet que je travaille tout le monde utilise python v2.6.2, et je ne pense pas que cela va changer: /, mais c'est une solution, merci – coelhudo

+0

Renommer pour l'instant. merci – coelhudo

+0

Vous pourriez un peu tordre votre éditeur pour vous donner une macro pour activer/désactiver un test mais je parle en tant qu'utilisateur Emacs donc ... :) –

22

Vous pouvez utiliser décorateurs pour désactiver le test qui peut envelopper la fonction et empêcher le test unitaire googletest ou python pour exécuter le 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() 

Sortie:

testFoo has been disabled 
4

je renomme juste une méthode de cas de test avec un trait de soulignement: test_myfunc devient _test_myfunc.

5

Il suffit de placer le décorateur @unittest.SkipTest au-dessus du test.

+0

Je ne sais pas qui l'a fait. Mais, je lisais la documentation et il est dit que SkipTest est une exception. Quoi qu'il en soit, il est différent de unittest.skip dans le sens où skip n'exécute jamais le test (le rendant désactivé), tandis que SkipTest doit être déclenché si quelque chose d'inattendu survient pendant l'exécution du test. Ai-je raison? Intéressant dur. – coelhudo

+0

'unittest.skip' (sans raison) me donne une erreur dans Python 2 mais pas dans Python 3. – Akif