Unit-test-Skript gibt exit-code = 0, auch wenn tests fehlschlagen
Mein Test-script sieht wie folgt aus:
import os
import sys
from unittest import defaultTestLoader as loader, TextTestRunner
path_to_my_project = os.path.dirname(os.path.abspath(__file__)) + '/../'
sys.path.insert(0, path_to_my_project)
suite = loader.discover('my_project')
runner = TextTestRunner()
runner.run(suite)
Wenn ich dieses Skript ausführen, wird die Ausgabe:
$ python3 runtest.py
.....F.....
======================================================================
FAIL: test_insert (fate.test.test_operators.OperatorTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/chiel/Projects/tfate/libs/fate/../fate/test/test_operators.py", line 16, in test_insert
self.assertEqual(expected, self.session.text[:14])
AssertionError: 'Foo import sys$' != 'Foo import sys'
- Foo import sys$
? -
+ Foo import sys
----------------------------------------------------------------------
Ran 12 tests in 0.030s
FAILED (failures=1)
- Und exit-code null:
$ echo $?
0
Jedoch die python docs Staat, die "standardmäßig wichtigsten Anrufe sys.exit()
mit exit-code, der Erfolg oder Misserfolg des tests."
Was falsch ist mit meinem Skript?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der code ist nicht mit
unittest.main
. Sie brauchen, um zu überprüfen und das Ergebnis mitTesturteil.wasSuccessful
und rufensys.exit
manuell.Hatte ich einige Mühe
TextTestRunner
Ergebnisse. Für diejenigen wie mich, hier ist, wie es funktioniert: