对于我需要在特定模块中测试的每个不同组件,我都有一个专用测试类。所有这些测试都围绕同一个对象/上下文进行,因此如果没有创建相应的对象并将其插入到测试数据库中,然后为每个测试类删除相应的对象,则可能会提高性能:
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):
...
请注意不要在 A
和 B
中使用相同的方法名称。
关于python - 在不同的测试类之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46847260/