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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 def fonction_a_tester(n): while 1:Comment feriez vous pour faire échouer test_infini rapidement avec une exception de type TimeError ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Milles mercis pour votre aide,
Partager