Jas*_*ett 48 django unit-testing
现在我有我的Django单元测试生活在mcif/tests.py
.我希望有更多的东西一样mcif/tests/foo_test.py
,mcif/tests/bar_test.py
等等,但如果我安排我的测试,这样,Django的翻转出来.
有没有办法做我正在尝试做的事情,或者我必须在一个文件中进行所有测试?
Art*_*ler 119
从Django 1.6版开始,测试发现机制发生了变化.您不再需要从中导入所有内容tests/__init__.py
,但现在您必须确保包含测试的所有文件都与模式匹配test*.py
.
所以,而不是拥有app/tests/models.py
和app/tests/views.py
,现在你应该拥有app/tests/test_models.py
和app/tests/test_views.py
.
您还可以创建一个名为的文件,app/tests/test.py
并从那里包含您的其他文件.问题是跑步者将寻找与模式匹配的文件test*.py
并执行它们.
dap*_*wit 17
注意:这描述了Django 1.6之前的行为.请参阅Artur Soler对Django 1.6及更高版本的回答.
制作一个包裹: myapp/tests/
在包中,根据需要放置尽可能多的不同测试模块.在__init__.py
内部tests
,从这些模块导入测试.(或者这个主题的一些变化.)
编辑:哇,没注意到你已经提到了一个tests
包.
重要的是从包中获取所有可用内容.Django将从包中获得测试,因此必须能够看到它们__init__.py
.
[编辑:添加了关于Django 1.6版的说明]