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

时间:2017-10-20 10:32:01

标签: 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只运行一次,同时为了清晰起见,我将测试保持在不同的类别下?

2 个答案:

答案 0 :(得分:1)

我相信您正在寻找setUpClass

答案 1 :(得分:0)

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

class A(object):
   ...

class B(object):
   ...

class TestAll(A, B, TestCase):

   @classmethod 
   def setUpTestData(class):
      ...

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