如何在Django单元测试之间共享数据(如临时路径)

时间:2013-09-13 13:26:10

标签: django testing selenium

class MyTestCaseA(TestCase):
    def setUp(self):
        # some setup here...

    def test_case(self):
        # some test

class MyTestCaseB(TestCase):
    def setUp(self):
        # some setup here...

    def test_case(self):
        # some test

我需要在MyTestCaseA和MyTestCaseB之间共享数据。就我而言,我想分享为每次执行测试而创建的文件夹的路径(通过“manage.py test myapp”)。在我的情况下,我将截取浏览器的截图(使用selenium),我想将我在各种测试用例中拍摄的所有截图存储在同一个临时文件夹中。

如果我在SetUp函数中创建一个临时文件夹,那么每个测试用例都会有一个不同的临时文件夹。

1 个答案:

答案 0 :(得分:1)

请尝试以下操作:

class SharedTempDir(object):
    def prepare(self):
        if not hasattr(SharedTempDir, 'tempdir'):
            # This part will be executed only once.
            SharedTempDir.tempdir = .... make temporary directory ...

class MyTestCaseA(TestCase, SharedTempDir):
    def setUp(self):
        SharedTempDir.prepare(self)
        ...
    def test_blah(self):
        ... use self.tempdir ... or SharedTempDir.tempdir ...

class MyTestCaseB(TestCase, SharedTempDir):
    def setUp(self):
        SharedTempDir.prepare(self)
        ...