Django测试无法将fixture的数据插入mysq

2024-06-17 14:03:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在运行测试用例之前将测试数据插入数据库。在

从django的详细输出来看,它已经从fixture加载了很多对象。但是,测试数据库中的表仍然是空的。我在测试代码中设置断点,然后检查测试数据库表。我甚至调试了django代码,它确实执行了insert sql并返回了受影响的行。但是我还是找不到测试数据库中的数据!在

数据库服务器是mysql。在

有什么办法解决吗?在

django测试的详细输出

...
Loading 'goods_756399566_3my10' fixtures...
...
Trying '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures' for goods_756399566_3my10.xml.zip fixture 'goods_756399566_3my10'...
No xml fixture 'goods_756399566_3my10' in '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures'.
Trying '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures' for goods_756399566_3my10.xml.bz2 fixture 'goods_756399566_3my10'...
No xml fixture 'goods_756399566_3my10' in '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures'.
Trying '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures' for goods_756399566_3my10.json fixture 'goods_756399566_3my10'...
Installing json fixture 'goods_756399566_3my10' from '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures'.
Trying '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures' for goods_756399566_3my10.json.gz fixture 'goods_756399566_3my10'...
No json fixture 'goods_756399566_3my10' in '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures'.
Trying '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures' for goods_756399566_3my10.json.zip fixture 'goods_756399566_3my10'...
...
Installed 117 object(s) from 2 fixture(s)

更新

我试着转储和初始数据相同的数据_数据.json,可以将该夹具中的数据插入到测试数据库中。我不知道为什么django在运行测试用例之前没有插入fixture,但是这是一个使我的工作继续进行的变通方法。在

解决方法

我不确定是我的环境造成的。不管怎样,我在做测试的时候把数据库改成了SQLLite,把fixture的数据导入内存数据库是没有问题的。在不安装mysql的情况下运行单元测试也是有意义的。在


Tags: 数据gitsrcweb数据库jsonforfixtures
1条回答
网友
1楼 · 发布于 2024-06-17 14:03:31

这很晚了,但是,我在研究我自己的一个类似问题时发现了这个问题。答案是,每个Django测试都被包装在一个事务中,所以如果您要跳转到其他程序来检查数据库,这就是为什么您看不到它。在

这个问题指向相关文档:Django Rest Framework testing save POST request data

(遗憾的是,这不是我自己的问题所在。)

相关问题 更多 >