2016-05-23 25 views
2

Dies ist mein Code:Unittest nicht testen (Python)

import unittest 

from sallad.Puppgift import Kundenssallad 

class Test_kundenssallad(unittest.TestCase): 

    def test_av_objekt(self): 
     namn = "Grekisksallad" 
     slutpris = 60 
     tillval = "gurka" 
     kundenssallad = Kundenssallad(namn, slutpris, tillval) 
     self.assertIsInstance(kundenssallad, Kundenssallad) 
     self.assertEqual(kundenssallad.slutpris, 60) 
     self.assertEqual(kundenssallad.tillval, "gurka") 

if __name__ == "__main__": 
    unittest.main() 

Bei diesem Code in PyCharm ausgeführt wird, erhalte ich:

Testing started at 11:32 ... 

Process finished with exit code 0 

ich das Programm erwartete so etwas wie drucken:

... 
---------------------------------------------------------------------- 
Ran 3 tests in 0.000s 

OK 

Warum scheinen die Tests nicht ausgeführt zu werden?

+0

Versuchen mit Drucken Tracing zu sehen, ob Ihr 'test_av_objekt'-Methode nicht in der Vergangenheit irgendwann bekommt, oder wenn es zu Ende auszuführen verwaltet. – Sahand

+0

Sie werden im PyCharm Run-Fenster mit dem testorientierten Layout ausgeführt. Wenn Sie möchten, kann ich ein kleines animiertes Gif machen, um es Ihnen zu zeigen. –

+0

Beachten Sie auch die Art des Befehls, der ausgeführt wird ... PyCharm hat Python Aufruf /Applications/PyCharm.app/Contents/helpers/pycharm/utrunner.py mit einem Argument Ihres Dateinamens. Die utrunner.py verwaltet die Ausführung Ihrer Tests, daher wird utrunner im Dateinamen angegeben. –

Antwort

1

Sie haben unittest nicht gesagt, welche Testsuite ausgeführt werden soll. pycharm stimmt nicht mit der if überein name == "main"? Versuchen Sie, einige Debuggen und Drucken Name.

Run es so etwas wie dieses:

if __name__ == "__main__": 
    unittest.main() 
    suite = unittest.TestLoader().loadTestsFromTestCase(Test_kundenssallad) 
    unittest.TextTestRunner(verbosity=2).run(suite) 
Verwandte Themen