J'utilise le unittest
de python et j'aimerais écrire un test qui démarre quelques threads et attend qu'ils se terminent. Les threads exécutent une fonction qui contient certaines assertions unittest
. Si l'une des assertions échoue, je veux que le test échoue également. Ce n'est pas le cas.
ÉDITER: Exemple minimal d'exécution (python3)
import unittest
import threading
class MyTests(unittest.TestCase):
def test_sample(self):
t = threading.Thread(target=lambda: self.fail())
t.start()
t.join()
if __name__ == '__main__':
unittest.main()
et la sortie est:
sh-4.3$ python main.py -v
test_sample (__main__.MyTests) ... Exception dans le thread Thread-1:
Traceback (most recent call last):
Fichier "/usr/lib64/python2.7/threading.py", ligne 813, dans __bootstrap_inner
self.run()
Fichier "/usr/lib64/python2.7/threading.py", ligne 766, dans run
self.__target(*self.__args, **self.__kwargs)
Fichier "main.py", ligne 7, dans
t = threading.Thread(target=lambda: self.fail())
Fichier "/usr/lib64/python2.7/unittest/case.py", ligne 450, dans fail
raise self.failureException(msg)
AssertionError: None
ok
----------------------------------------------------------------------
Ran 1 test in 0.002s
OK