Als ich Änderungen an der Legacy-Skriptgruppe vorgenommen habe, war ein Test erforderlich. Wenn ich jedoch unittest Code für ein Skript mit nur Funktionen ohne Klasse schrieb, stieß ich auf einen Funktionstest mit einer globalen Variablen und konnte ihn nicht global deklarieren. Lass uns gehen! Ich habe den Fehler bekommen.
※ Python2.7
Lauf
test_aaa.py
import aaa_module
class TestAAA(unittest.TestCase):
def test_aaa
aaa_module.aaa_func()
Error
...
NameError: global name 'logger' is not defined
Es gibt keinen Logger. Es gibt.
aaa_module.py
if __name__ == '__main__':
logger = logging.getLogger('...')
Mit global deklariert. Es gibt.
Ich konnte nicht anders, also versuchte ich Folgendes auf der unittesten Seite.
Lauf
test_aaa.py
import aaa_module
class TestAAA(unittest.TestCase):
def test_aaa
global logger
logger = logging.getLogger('...')
aaa_module.aaa_func()
Error
...
NameError: global name 'logger' is not defined
ändert sich nicht. Warum ...
Referenz: In Python gibt es keine globalen Variablen, um genau zu sein, modulinterne Variablen. ist es?
module.global variable = value
Lauf
test_aaa.py
import aaa_module
class TestAAA(unittest.TestCase):
def test_aaa
aaa_module.logger = logging.getLogger('...')
aaa_module.aaa_func()
Es gibt noch viele Unbekannte in Python
Recommended Posts