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?

InformationsquelleAutor Amey | 2013-10-02