Depuis la version 3.4, Python supports a simple subtest syntax when writing unittests. Un exemple simple pourrait ressembler à ceci:Nombre de sous-tests dans Python unitteststs séparément
import unittest
class NumbersTest(unittest.TestCase):
def test_successful(self):
"""A test with subtests that will all succeed."""
for i in range(0, 6):
with self.subTest(i=i):
self.assertEqual(i, i)
if __name__ == '__main__':
unittest.main()
Lors de l'exécution des tests, la sortie sera
python3 test_foo.py --verbose
test_successful (__main__.NumbersTest)
A test with subtests that will all succeed. ... ok
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
Cependant, dans mon vrai cas d'utilisation du monde, les sous-tests dépendra d'un itérables plus complexe et vérifiez quelque chose qui est très différent pour chaque sous-test. Par conséquent, je préférerais que chaque sous-test soit compté et listé comme un cas de test séparé dans la sortie (Ran 6 tests in ...
dans cet exemple) pour obtenir une image complète.
Est-ce que c'est en quelque sorte possible avec le module unittest
en Python? The nose test generator feature produirait chaque test séparément mais je voudrais rester compatible avec la bibliothèque standard si possible.