Est-il possible de tester des fonctions spécifiques avec doctest dans un module?

j'essaie d'entrer dans les tests en Python en utilisant le module doctest. Pour le moment, je ne

  1. Écrire les tests pour les fonctions.
  2. implémenter le code des fonctions.
  3. si les Tests sont réussis, écrivez Plus de tests et plus de code.
  4. Lorsque la fonction est fait passer à la fonction suivante à mettre en œuvre.

donc après 3 ou 4 fonctions (indépendantes) dans le même module avec beaucoup de tests j'obtiens une sortie énorme par doctest. Et c'est un peu annoysing.

Est-il un moyen de dire doctest "ne pas tester les fonctions a(),b() et c()", de sorte qu'il s'exécute uniquement les non marquées fonctions?

je n'ai trouvé que le doctest.SKIP drapeau, qui n'est pas suffisant pour mes besoins. Je devrais placer ce drapeau dans beaucoup de lignes. Et si je veux vérifier un fonction encore une fois, je devrais passer manuellement à travers le code et enlever n'importe quel drapeau I placé à l'intérieur.

12
demandé sur Martin Thoma 2012-04-10 01:31:02

1 réponses

ressemble vous pouvez passer à la fonction run_docstring_examples:

def f(a, b, c):
    '''
    >>> f(1,2,3)
    42
    '''

if __name__ == '__main__':
    import doctest
#    doctest.testmod()
    doctest.run_docstring_examples(f, globals())

exemple trouvé via google.

15
répondu andrew cooke 2012-04-10 00:12:23