【发布时间】:2014-10-12 02:01:40
【问题描述】:
我有一些代码(芹菜任务)通过urllib 调用 Django 视图。任务代码和视图都是同一个 Django 项目的一部分。
我正在测试任务,并且需要它能够在测试期间联系视图并从中获取数据,因此我使用了LiveServerTestCase。理论上我在我的测试用例的setUp函数中建立了数据库(我添加了product实例的列表)然后调用任务,它做了一些事情,然后通过urllib调用Django视图(访问由LiveServerTestCase 设置的开发服务器,返回product 实例的JSON 列表。
不过,实际上,我在setUp 中添加的products 在调用时似乎对视图不可见。看起来测试用例代码正在使用一个数据库(test_<my_database_name>),而在开发服务器上运行的视图正在访问另一个(urllib 调用成功地联系了视图,但找不到我要求的产品) .
任何想法为什么会出现这种情况?
可能是相关的 - 我们正在 MySQL 数据库而不是 sqlite 上进行测试。
引出两个问题(如果您认为我们做错了,请对 cmets 感兴趣):
- 我知道任务使用
urllib访问视图似乎很奇怪。我们这样做是因为该任务通常调用一系列第三方 API 中的一个来获取有关产品的信息,如果它无法访问这些,它会访问我们自己的 Django 产品数据库。进行 urllib 调用的代码是通用代码,与我们正在处理的情况无关。 - 这些是集成测试,因此我们更愿意实际调用
urllib而不是模拟它
【问题讨论】:
标签: python mysql django testing