2017-06-10 2 views
0

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 

Antwort

1

Ihr Code funktioniert auf meinem Box:

$ python -m unittest tester 
F 
====================================================================== 
FAIL: test_assert_raises_msg (test.TestAssertRaisesMsgParam) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "C:\Users\danth\src\test.py", line 12, in test_assert_raises_msg 
    1/1 
AssertionError: ZeroDivisionError not raised : Unexpected denominator 

---------------------------------------------------------------------- 
Ran 1 test in 0.001s 

FAILED (failures=1) 

Achten Sie darauf, Ihren Test wie folgt ausführen:

python -m unittest name_of_test_file 
+0

Hmm. Ich bekomme unterschiedliche Ergebnisse. Ich denke, es ist eine Art Plattformproblem. –

Verwandte Themen