我使用的是django1.8。我一直在一个名为test_api.py
的长文件中为我的djangoapi编写测试。文件结构如下:
def setUpModule():
management.call_command('loaddata', 'frontend/fixtures/data.json',
verbosity=0)
management.call_command('my_custom_command')
def tearDownModule():
management.call_command('flush', verbosity=0, interactive=False)
class TestAPIBNFViews(TestCase):
def test_api_view_list_all(self):
url = '/api/1.0/bnf_code'
# do testing
def test_api_view_query(self):
# more testint
fixtures和management命令在所有测试运行之前加载一次,到目前为止效果非常好。在
但是现在这个文件变得又长又笨拙,我想把它分成多个文件。我已经创建了多个名为test_list
和test_query
的文件,并如上所述给每个文件一个setUpModule
部分。在
但是,首先这不是干的,其次当我运行python manage.py test
时,许多测试都会失败,并出现重复的外键错误,例如:
我想这并不奇怪,因为测试多次尝试创建测试数据库。在
但是,如果我从除第一个测试(按文件名的字母顺序列出)之外的所有测试中删除setUpModule
,则其他测试将失败,因为它们看不到任何数据。在
如何在所有测试运行之前运行setUpModule
一次,并且为了方便起见,仍然将测试保存在单独的文件中?在
与对两个测试类使用全局
setUpModule
不同的是,您也可以在每个TestCase
类中使用一次setUpTestData
。来自Django documentation: Testing tools:相关问题 更多 >
编程相关推荐