Python unittest использует носеты для экспериментов с Python Class и Module fixtures, чтобы иметь минимальную настройку в моих тестах.
Проблема . Я сталкиваюсь с этим, я не уверен, как использовать любые переменные, определенные в функциях setupUpModule
и setUpClass
в моих тестах (например: - test_1
).
Это то, что я использую, чтобы опробовать:
import unittest
def setUpModule():
a = "Setup Module variable"
print "Setup Module"
def tearDownModule():
print "Closing Module"
class TrialTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
print a #<======
b = "Setup Class variable"
@classmethod
def tearDownClass(cls):
print "Closing Setup Class"
def test_1(self):
print "in test 1"
print a #<======
print b #<======
def test_2(self):
print "in test 2"
def test_3(self):
print "in test 3"
def test_4(self):
print "in test 4"
def test_5(self):
print "in test 5"
if __name__ == "__main__":
unittest.main()
Ошибка, которую я получаю:
Setup Module
ERROR
Closing Module
======================================================================
ERROR: test suite for <class 'one_setup.TrialTest'>
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/nose/suite.py", line 208, in run
self.setUp()
File "/Library/Python/2.7/site-packages/nose/suite.py", line 291, in setUp
self.setupContext(ancestor)
File "/Library/Python/2.7/site-packages/nose/suite.py", line 314, in setupContext
try_run(context, names)
File "/Library/Python/2.7/site-packages/nose/util.py", line 469, in try_run
return func()
File "/Users/patila14/Desktop/experimental short scripts/one_setup.py", line 13, in setUpClass
print a
NameError: global name 'a' is not defined
----------------------------------------------------------------------
конечно, если do gloabl a
и global b
, это сработает. Есть ли лучший способ?