简介
我正在为一个Django项目编写单元测试,其中一些DB条目是从一个文件加载的。解析文件并创建所有条目的成本很高
应用程序有不同的模块要测试,所以我为每个模块实现一个TestCase
问题
模块依赖于从文件解析的数据(即,它们需要相同的数据库),但我负担不起为所有不同的TestCase
重新设置数据库,如下所示:
class TestBehavior_A(TestCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
expensive_db_init()
class TestBehavior_B(TestCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
expensive_db_init()
class TestBehavior_C(TestCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
expensive_db_init()
我也不能将所有的测试用例合并到同一个类中,否则会一团糟
理想情况下
我想在所有测试用例中共享一个设置(即只调用setUpClass
一次)
有类似的东西:
class TestBase(TestCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
expensive_db_init()
class TestBehavior_A(TestCase):
pass
class TestBehavior_B(TestCase):
pass
class TestBehavior_C(TestCase):
pass
库模块:unittest
子类来自django.test.TestCase,后者是unittest.TestCase的子类
运行测试:
使用项目的manage.py实用程序的test命令运行它们:
运行animals.tests模块中的所有测试
运行“animals”包中的所有测试
只运行一个测试用例
只运行一个测试方法
我找不到任何合适的方法为所有的
TestCase
一次性设置DB相反,我只检查
expensive_db_init()
如果DB已经从文件初始化(通过检查某些条目的存在),如果没有,我就初始化它相关问题 更多 >
编程相关推荐