[unittest] Run setUp only once
Jean-Paul Calderone
exarkun at divmod.com
Tue Jul 29 10:49:17 EDT 2008
On Tue, 29 Jul 2008 16:35:55 +0200, Nikolaus Rath <nikolaus at rath.org> wrote:
>Hello,
>
>I have a number of conceptually separate tests that nevertheless need
>a common, complicated and expensive setup.
>
>Unfortunately, unittest runs the setUp method once for each defined
>test, even if they're part of the same class as in
>
>class TwoTests(unittest.TestCase):
> def setUp(self):
> # do something very time consuming
>
> def testOneThing(self):
>
>
> def testADifferentThing(self):
>
>
>which would call setUp twice.
>
>
>Is there any way to avoid this, without packing all the unrelated
>tests into one big function?
>
class TwoTests(unittest.TestCase):
setUpResult = None
def setUp(self):
if self.setUpResult is None:
self.setUpResult = computeIt()
...
There are plenty of variations on this pattern.
Jean-Paul
>
>Best,
>
> -Nikolaus
>
>--
> »It is not worth an intelligent man's time to be in the majority.
> By definition, there are already enough people to do that.«
> -J.H. Hardy
>
> PGP fingerprint: 5B93 61F8 4EA2 E279 ABF6 02CF A9AD B7F8 AE4E 425C
>
>--
>http://mail.python.org/mailman/listinfo/python-list
>
More information about the Python-list
mailing list