Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于基本测试用例的Django测试用例_Python_Django - Fatal编程技术网

Python 基于基本测试用例的Django测试用例

Python 基于基本测试用例的Django测试用例,python,django,Python,Django,在我的webapp中,我有一个ListItem类,然后还有许多其他基于此的类,但名称不同 目前我对所有这些都有单独的测试模块。这意味着有很多重复的测试代码 我试图创建一个BaseListItemTestCase类,它有一个变量self.listitem\u modelset,在所有测试中都使用它。这意味着代码不会重复 self.listitem_模型将在一个子测试用例中设置,该子测试用例只包含一个init()方法来设置它 我做了上面所有的工作,问题是,如果在基本测试类中有一个测试,而我只运行子测

在我的webapp中,我有一个ListItem类,然后还有许多其他基于此的类,但名称不同

目前我对所有这些都有单独的测试模块。这意味着有很多重复的测试代码

我试图创建一个BaseListItemTestCase类,它有一个变量
self.listitem\u model
set,在所有测试中都使用它。这意味着代码不会重复

self.listitem_模型
将在一个子测试用例中设置,该子测试用例只包含一个init()方法来设置它

我做了上面所有的工作,问题是,如果在基本测试类中有一个测试,而我只运行子测试用例,那么测试将运行两次

这有什么原因吗?我只想让我说的测试运行,运行

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

您已经将测试方法放入基类中,因此它由子类继承。现在有两个类使用
test\u something
方法,因此这两个类都将运行

把测验放在儿童班上。或者,如果您希望逻辑位于基类中,请将其放入不属于
test\u
的方法中,并在子类中有一个简单调用该方法的基本
test\u something
方法