我有一个专门的测试类,用于我需要在特定模块中测试的每个不同组件。所有这些测试都围绕相同的对象/上下文进行,因此如果没有创建相应的对象并将其插入测试数据库,然后为每个测试类删除,那么它可能会提高性能:
class ContextTest(TestCase):
fixtures = [...]
@classmethod
def setUpTestData(cls):
pass
# executes setUpTestData
class Component1Test(ContextTest):
pass
# executes setUpTestData again
class Component2Test(ContextTest):
pass
有什么方法可以确保setUpTestData
只运行一次,同时为了清晰起见,我将测试保持在不同的类别下?
答案 0 :(得分:1)
我相信您正在寻找setUpClass
答案 1 :(得分:0)
我将测试放在object
派生的mixin类中,然后制作了一个从TestCase
派生的单个类,但又混合了具有实际测试的mixin。
class A(object):
...
class B(object):
...
class TestAll(A, B, TestCase):
@classmethod
def setUpTestData(class):
...
请注意不要在A
和B
中使用相同的方法名称。