python - 在不同的测试类之间共享数据

标签 python django testing django-1.8

对于我需要在特定模块中测试的每个不同组件,我都有一个专用测试类。所有这些测试都围绕同一个对象/上下文进行,因此如果没有创建相应的对象并将其插入到测试数据库中,然后为每个测试类删除相应的对象,则可能会提高性能:

class ContextTest(TestCase):
    fixtures = [...]

    @classmethod
    def setUpTestData(cls):
        pass

# executes setUpTestData
class Component1Test(ContextTest):
    pass

# executes setUpTestData again
class Component2Test(ContextTest):
    pass

有什么方法可以确保 setUpTestData 只运行一次,同时为了清晰起见将我的测试保持在不同的类下?

最佳答案

我将我的测试放在从 object 派生的混合类中,然后创建一个从 TestCase 派生的类,但混合在具有实际测试的 mixin 中。

class A(object):
   ...

class B(object):
   ...

class TestAll(A, B, TestCase):

   @classmethod 
   def setUpTestData(class):
      ...

请注意不要在 AB 中使用相同的方法名称。

关于python - 在不同的测试类之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46847260/

相关文章:

django - Django-用户模型外键

javascript - 在 Javascript 中使用 fetch API 接收和处理 JSON

java - Intellij 测试运行历史

python - 从 python 中的 csv 创建具有唯一属性的唯一节点字典以加载到 neo4j

Django 模型在添加之前验证 ManyToMany 字段

python - 使用 HttpResponse 为函数编写 Django 单元测试

php - .htaccess modrewrite 无法正常工作?

php - 动态测试工具

python - 导入错误 : No module named request

python XlsxWriter 文本换行和链接样式