【发布时间】:2018-05-30 16:07:08
【问题描述】:
我没有看到 LiveServerTestCase 没有加载固定装置的任何地方,但是当我执行以下操作时:
class FrontTest(LiveServerTestCase):
fixtures = ['event.json']
@classmethod
def setUpClass(cls):
super().setUpClass()
print(Event.objects.all())
输出是:
Using existing test database for alias 'default'...
[]
当我使用TestCase时
class FrontTest(TestCase):
fixtures = ['event.json']
@classmethod
def setUpClass(cls):
super().setUpClass()
print(Event.objects.all())
输出是:
[<Event: event search>]
你知道为什么我的夹具只在 TestCase 中加载吗?我真的很想让它使用 Selenium。谢谢!
PS:event.json :
{
"model": "mezzanine_agenda.event",
"pk": 1,
"fields": {
"comments_count": 0,
"keywords_string": "",
"rating_count": 0,
"rating_sum": 0,
"rating_average": 0.0,
"site": 1,
"title": "event search",
"slug": "event-search",
"_meta_title": "",
"description": "event search",
"gen_description": true,
"created": "2018-05-25T15:49:55.223Z",
"updated": "2018-05-25T15:49:55.257Z",
"status": 2,
"publish_date": "2018-05-25T15:49:32Z",
"expiry_date": null,
}
},
【问题讨论】:
-
你的目录结构是什么?
-
您是否收到任何其他消息(例如抱怨找不到夹具的测试用例)?
-
不,我的夹具已加载,因为如果我更改“标题”字段并加载我的测试,会有以下输出:
Event has no field named 'titles' -
会不会是因为
LiveServerTestCase? -
我不认为您使用 SQLite 作为测试数据库是吗?
标签: python django testing fixtures