我想在我的 django 项目中的 test.py 中有不同的测试用例类。一个用于模型测试(crud)一个用于视图测试等。我有以下课程
class EntryModelTest(TestCase):
LOG = logging.getLogger(__name__)
@classmethod
def setup_database(cls):
#database initialization
@classmethod
def setUpClass(cls):
super(EntryModelTest, cls).setUpClass()
cls.setup_database()
cls.myModel = MyModel.objects.get(pk=1)
#some queries (additions) that use things that were added in setup_database()
和第二个测试用例
class MyCalViewsTest(TestCase):
LOG = logging.getLogger(__name__)
@classmethod
def setup_database(cls):
#exactly the same code as above testcase(I know I could use Inheretiance. Will refactor)
@classmethod
def setUpClass(cls):
#The same as above testcase
cls.myModel = MyModel.objects.get(pk=1) #this gives the following error: DoesNotExist: PracticeData matching query does not exist.
MyModel 实例是在 setup_database 方法中创建的。我不太清楚为什么。如果在执行每个测试用例类后破坏了测试数据库,那么 setup_database 方法应该重新创建了 pk=1 的 MyModel 实例,这样我就已经存在了。如果它没有破坏测试数据库,那么 pk=1 的 MyModel 实例已经存在,所以我也不应该有任何问题。任何帮助,将不胜感激。