在我的webapp中,我有一个ListItem类,然后是许多基于此但具有不同名称的其他类。
我目前所有这些都有单独的测试模块。这意味着很多重复的测试代码。
我正在尝试创建一个具有变量self.listitem_model
集的BaseListItemTestCase类,在其所有测试中使用它。这意味着代码不会重复。
self.listitem_model
将设置在仅包含 init ()方法的子测试用例中。
我做了以上所有,问题是,如果在基础测试类中进行了1次测试并且我只运行了子测试用例,则测试会运行两次。
这有什么理由吗?我只是想让我告诉跑的测试,跑。
class BaseListItemTestCase(APITestCase):
def __init__(self, *args, **kwargs):
super(BaseListItemTestCase, self).__init__(*args, **kwargs)
self.listitem_model = None
def test_something(self):
self.assertEqual(self.listitem_model.objects.all().count(), 0)
class LikeListTestCase(BaseListItemTestCase):
def __init__(self, *args, **kwargs):
super(LikeListTestCase, self).__init__(*args, **kwargs)
self.listitem_model = LikeListItem
答案 0 :(得分:1)
您已将测试方法放入基类中,因此它由子类继承。现在有两个类使用test_something
方法,因此两者都将运行。
将测试放在子类中。或者,如果您希望逻辑位于基类中,请将其放在不属于test_
的方法中,并在子类中使用基本的test_something
方法,只需调用该方法即可方法