Bonjour à tous,
Je viens de me poser une question très bête... et je n'ai aucun élément de réponse (je n'ai pas envie de faire un subprocess et tout le tralala...).
Imaginez que vous ayez 30 fois le même tp à corriger. Pourquoi ne pas le faire automatiquement avec des tests unitaires ?
Oui..., mais si l'un des étudiants à fait une boucle infini dans sa fonction que l'on est en train de tester ???
Autrement dis :
comment interrompre un test, dans une série de test, si celui-ci est trop long (disons > 10s) pour se finir ???
La situation typique serait la suivante :
1 2
| def fonction_a_tester(n):
while 1: |
1 2 3 4 5 6 7 8 9 10 11
| import unittest
from ... import fonction_a_tester
class TestFonctionATester(unittest.TestCase):
def test_infini(self):
self.assertEqual(fonction_a_tester(1), 1,
msg = "fonction_a_tester(1) ne renvois pas le bon resultat")
if __name__ == '__main__':
unittest.main |
Comment feriez vous pour faire échouer test_infini rapidement avec une exception de type TimeError ?
Milles mercis pour votre aide,
Partager