【问题标题】:Share data between different test classes在不同的测试类之间共享数据
【发布时间】:2018-04-01 12:23:54
【问题描述】:

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

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

    @classmethod
    def setUpTestData(cls):
        pass

# executes setUpTestData
class Component1Test(ContextTest):
    pass

# executes setUpTestData again
class Component2Test(ContextTest):
    pass

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

【问题讨论】:

    标签: python django testing django-1.8


    【解决方案1】:

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

    class A(object):
       ...
    
    class B(object):
       ...
    
    class TestAll(A, B, TestCase):
    
       @classmethod 
       def setUpTestData(class):
          ...
    

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

    【讨论】:

      【解决方案2】:

      相信你在找setUpClass

      【讨论】:

      • 嗯不,你不能用那个方法加载数据
      猜你喜欢
      • 1970-01-01
      • 2021-07-10
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-03
      相关资源
      最近更新 更多