python - django 测试无法将固定装置的数据插入 mysql

标签 python mysql django django-models

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

从 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 在运行测试用例之前无法插入固定装置,但这是让我的工作继续进行的一种解决方法。

解决方法:

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

最佳答案

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

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

(遗憾的是,这不是我自己问题的原因。)

关于python - django 测试无法将固定装置的数据插入 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12284832/

相关文章:

python - 如何在 PyCharm IDE 中使用子进程模块调用基于 ncurses 的应用程序?

python - 如何使用原始输入来定义变量

php - 没有从 MySQL 检索到 Android ListView 的数据

python - 如何为 Python 3.x 安装 psycopg2?

javascript - Django 在 init 中将波兰语字符传递给 Angular 会导致词法分析器错误

python - openpyxl:如何从所有行的特定列中获取数据?

python - 使用 beautifulsoup 抓取时如何在 html 日期选择器中输入日期范围?

mysql - 帮助 MYSQL 查询聚合计数(替代三个子查询)

php - 比较从 mySql 查询返回的字符串

Django模型同时聚合和和计数