Comment les tests unitaires individuels peuvent-ils être temporairement désactivés lors de l'utilisation du module unittest
en Python?Désactiver temporairement les tests unitaires Python
Répondre
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.
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_"))))
+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
Renommer pour l'instant. merci – coelhudo
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 ... :) –
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
je renomme juste une méthode de cas de test avec un trait de soulignement: test_myfunc devient _test_myfunc.
Il suffit de placer le décorateur @unittest.SkipTest
au-dessus du test.
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
'unittest.skip' (sans raison) me donne une erreur dans Python 2 mais pas dans Python 3. – Akif
- 1. Tests unitaires en Python
- 2. Comment désactiver temporairement l'analyse de code localement?
- 3. Tests unitaires en python avec nez: Faire des tests séquentiels
- 4. iPhone - Clavier désactiver temporairement
- 5. Dans quelles circonstances les tests unitaires Python échouent-ils?
- 6. Python: Les tests unitaires pour la date change
- 7. UIKit et les tests unitaires
- 8. Tests d'acceptation de tests unitaires?
- 9. Comment désactiver temporairement les déclencheurs dans PostgreSQL?
- 10. wxPython: comment désactiver tous les accélérateurs temporairement?
- 11. En Python, quel est le bon motif pour désactiver certains codes lors de tests unitaires?
- 12. Désactiver temporairement le plugin Eclipse
- 13. Tests unitaires en PHP?
- 14. Intégration vs tests unitaires
- 15. Tests unitaires en XCode
- 16. Héritage des tests unitaires
- 17. Tests unitaires et appareils
- 18. Tests unitaires SiteMapNode
- 19. règles de tests unitaires
- 20. Tests unitaires avec Deployment.Current.Dispatcher.BeginInvoke
- 21. Tests unitaires LinqToSqlDomainService
- 22. primitives tests unitaires
- 23. organisation tests unitaires
- 24. Tests unitaires - objectif fondamental?
- 25. BDD et tests unitaires
- 26. Tests unitaires Services RIA
- 27. Classification des tests unitaires
- 28. Tests unitaires avec Oracle
- 29. Tests unitaires en flex
- 30. ResourceManager et tests unitaires
En Python 3, la réponse d'Akif ci-dessous '@ unittest.SkipTest' fonctionne et non @ @ unittest.skip' – lifebalance
J'utilise Python 3.6.1 et' @ unittest.skip' fonctionne aussi très bien. – Pete
@Pete, en Python 3.4.0, '@ unittest.skip' ne fonctionne pas. – lifebalance