2 votes

Existe-t-il un moyen d'introduire un petit délai entre chaque cas d'unittest ?

Je teste une application dans un conteneur docker, et il semble que l'application se bloque pour une raison de virtualisation (je suis obligé d'utiliser un conteneur amd64 émulé qemu sur un Mac M1).

J'ai lu que la stabilité de la couche qemu est sensible aux E/S. Existe-t-il un moyen de ralentir le runner unittest, éventuellement avec un délai/temps de sommeil entre chaque test ?

Merci d'avance

0 votes

Probablement, mais vous devrez d'abord nous parler de votre cadre de test.

1 votes

La plupart des cadres de test ont une option pour exécuter du code après toutes les parties avec quelque chose comme une @After ou similaire. Il suffit de mettre un sommeil dans quelque chose comme ça.

0 votes

Hum pas de framework spécifique j'utilise unittest pour valider une application web nonython. plutôt un test d'intégration. Typiquement quelque chose comme "unittest -> curl l'actif suivant, supposez que nous avons un statut 200".

1voto

Jacques Gaudin Points 4478

Si vous ne voulez pas insérer un peu de temps de sommeil dans la setUp o tearDown vous pouvez sous-classer et surcharger les méthodes par défaut de la méthode TestResult en faisant quelque chose comme ça :

import time
import unittest

class SlowTestResult(unittest.TestResult):
    def startTest(self, test):
        time.sleep(1)
        super().startTest(test)

slowTestRunner = unittest.TextTestRunner(resultclass=SlowTestResult)

if __name__ == '__main__':
    unittest.main(testRunner=slowTestRunner)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X