我想在运行测试用例之前将测试数据插入数据库。
从 django 的详细输出来看,它说它已经从固定装置加载了很多对象。但是测试数据库中的表仍然是空的。我在我的测试代码中设置断点,然后检查测试数据库的表。我什至调试了 django 代码,它确实执行了插入 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)
更新:
我尝试转储与 initial_data.json 相同的数据,这个夹具中的数据可以插入到测试数据库中。我不知道为什么 django 在运行测试用例之前无法插入固定装置,但这是让我的工作继续进行的一种解决方法。
解决方法:
我不确定这是我的环境造成的。无论如何我在做测试时将数据库更改为SQLLite,将夹具数据导入内存数据库没有问题。在没有安装 mysql 的情况下运行单元测试也很有意义。