Ich verfolge die harte Tour lernen Python und ich bin auf Übung 47 - Automatisiertes Testen (http://learnpythonthehardway.org/book/ex47.html)Python Nameerror: global name ‚assertEqual‘ ist nicht
Ich verwende Python3 (vs die Verwendung des Buches Python 2.x) und ich stelle fest, dass assert_equals (das im Buch verwendet wird) veraltet ist. Ich benutze assertEqual.
Ich versuche, einen Testfall zu bauen, aber aus irgendeinem Grund, wenn nosetests in cmd, erhalte ich die Fehlermeldung: NameError: global name 'assertEqual' is not defined
Hier ist der Code:
from nose.tools import *
from ex47.game import Room
def test_room():
gold = Room("GoldRoom",
""" This room has gold in it you can grab. There's a
door to the north. """)
assertEqual(gold.name, "GoldRoom")
assertEqual(gold.paths, {})
def test_room_paths():
center = Room("Center", "Test room in the center.")
north = Room("North", "Test room in the north.")
south = Room("South", "Test room in the south.")
center.add_paths({'north': north, 'south': south})
assertEqual(center.go('north'), north)
assertEqual(center.go('south'), south)
def test_map():
start = Room("Start", "You can go west and down a hole")
west = Room("Trees", "There are trees here. You can go east.")
down = Room("Dungeon", "It's dark down here. You can go up.")
start.add_paths({'west': west, 'down': down})
west.add_paths({'east': start})
down.add_paths({'up': start})
assertEqual(start.go('west'), west)
assertEqual(start.go('west').go('east'), start)
assertEqual(start.go('down').go('up'), start)
Ich habe versucht, die Suche GitHub für irgendwelche Lösungen, und ich bin nur nicht sicher, warum es mir den NameError gibt und wie würde ich es beheben.
Ist das nicht 'assertEqual' Teil Unittest? Die Nase verwendet immer noch 'assert_equal'. – Blender
Wow, du hast Recht. Ich habe 'assertEqual' in' assert_equal' geändert, wie du es gesagt hast und es funktioniert einwandfrei. Vielen Dank! – auro