Im folgenden sollte der Test fehlschlagen und der msg
Parameter drucken. Aber das tut es nicht. Wie bekomme ich Python 'unittest `` assertRaises `Methoden um` msg` Parameter zu drucken?
with self.assertRaises(ZeroDivisionError, msg="Unexpected denominator"):
1/1
Dieser Parameter (msg
) arbeitet in jedem anderen assert*
Verfahren. Es scheint sehr unwahrscheinlich, dass etwas so Grundlegendes in unittest
gebrochen werden könnte, also, was ist der Deal?
Hier ist ein komplettes Programm, das das Problem veranschaulicht:
#!/usr/bin/env python2
import unittest
class TestAssertRaisesMsgParam(unittest.TestCase):
def test_assert_raises_msg(self):
"""
Test unittest `assertRaises` msg param is printed
"""
with self.assertRaises(ZeroDivisionError, msg="Unexpected denominator"):
1/1
if __name__ == '__main__':
unittest.main()
hier mit ihm meine Interaktion ist:
$ ls -l assertRaises.py
-rwxr-xr-x 1 tom users 440 Jun 10 14:04 assertRaises.py
$ python -m unittest assertRaises
F
======================================================================
FAIL: test_assert_raises_msg (assertRaises.TestAssertRaisesMsgParam)
----------------------------------------------------------------------
Traceback (most recent call last):
File "assertRaises.py", line 14, in test_assert_raises_msg
1/1
AssertionError: ZeroDivisionError not raised
----------------------------------------------------------------------
Ran 1 test in 0.000s
FAILED (failures=1)
und einige System-Info:
$ /usr/bin/env python2
Python 2.7.13 (default, Mar 22 2017, 12:31:17) [GCC] on linux2
$ uname -a
Linux ... 4.4.62-18.6-default #1 SMP Fri Apr 21 16:14:48 UTC 2017 (84f9824) x86_64 x86_64 x86_64 GNU/Linux
Hmm. Ich bekomme unterschiedliche Ergebnisse. Ich denke, es ist eine Art Plattformproblem. –