D. Guandalino wrote:
Suppose I have this TestCase class.

class C(TestCase):
   def setUp():
      # very time consuming and resources intensive stuffs.
      pass

   def test_A(self):
       pass
   def test_B(self):
       pass
   def test_C(self):
       pass

The unittest docs says:

Each instance of the TestCase will only be used to run a single test
method, so a new fixture is created for each test.


Does this mean that the setUp() method, which is called to prepare the test
fixture, get called for test_A, test_B and test_C?

That's easy enough to find out:

    def setUp(self):
        print("calling setUp")
        ...


See how many times "calling setUp" is printed.


In this case is there a
way to force just one setUp() call?


I don't know if this is the best way, but the first way that comes to mind is this:


class C(TestCase):
    initialised = False
    def setUp(self):
        if self.initialised:
            return
        # Make sure you save the flag on the class, not the instance!
        self.__class__.initialised = True
        ...


--
Steven

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to