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

标签 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 函数中创建一个临时文件夹,那么每个测试用例都会有一个不同的临时文件夹。

最佳答案

尝试以下操作:

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)
        ...

关于django - 如何在 Django 单元测试之间共享数据(如临时路径),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18787516/

相关文章:

django - 错误: maximum recursion depth exceeded

python - Django flatpages 不工作

node.js - 使用 server.inject 错误捕获的 hapijs 测试

python - 在 Pytest 中使用 MagicMock 对象时如何检查嵌套函数中的异常?

html - Selenium:测试文本是否完全可见

java - org.openqa.selenium.SessionNotCreatedException : Unable to create new remote session in Mac

django - 如何通过混合继承多个查询集过滤器

python - Django:数据库级别或代码级别的TextField(字符串)数据压缩

python - 在假设函数中执行数据库查询时列出超出范围的索引

ruby - 如何使用 Selenium Webdriver 根据 div 的内容执行操作?