Python unitest - Utiliser des variables définies dans le module de classe et de niveau des fonctions de configuration, dans les tests
Python unittest à l'aide de nosetests à expérimenter avec Python Classe et Module de luminaires, d'avoir une configuration minimale, à travers mes tests.
La problème je suis confronté est, je ne suis pas sûr de savoir comment utiliser toutes les variables définies dans le setupUpModule
et la setUpClass
fonctions dans mes tests (exemple :- test_1
).
C'est ce que j'utilise pour essayer:
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()
L'erreur que j'obtiens est :
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
----------------------------------------------------------------------
bien sûr, si ne gloabl a
et global b
, il va fonctionner. Est-il un meilleur moyen?
- Double Possible de Unittest réglage/démontage pour plusieurs tests
Vous devez vous connecter pour publier un commentaire.
Pour la variable str
a
, la seule solution estglobal a
. Si vous regardez la Python 2 unittest code source,setupModule()
ne semble pas faire quelque chose de magique, de sorte que tous l'habitude de l'espace de noms s'appliquent.Si
a
étaient une variable mutable, comme une liste, vous pouvez la définir à portée mondiale, puis ajouter dans setupModule.Variable
b
est plus facile de travailler avec, car elle est définie à l'intérieur d'une classe. Essayez ceci: