7

在PyCharm中添加Django的测试执行入口

 3 years ago
source link: https://note.qidong.name/2017/11/django-test-in-pycharm/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

在PyCharm中添加Django的测试执行入口

2017-11-22 17:19:46 +08  字数:788  标签: Django

本文简单记录如何在PyCharm中,添加Django的测试执行入口。 这么简单的事,之所以要记一篇,是因为其中有个小陷阱。

陷阱

在首次尝试时,孤第一反应是使用【Unittests】。 因为Django的测试类,是继承于Python自带的unittest

PyCharm添加可执行配置

然而,却调整了很久都没有成功。 究其原因,PyCharm里添加的【Unittests】,其执行入口是python -m unittest

Django测试的执行入口,应该是python manage.py test

可行解

其实,添加普通的【Python】配置即可。 【Python】配置,就是执行普通的某个Python脚本。

run_configuration.png
  1. 在那个向右的执行箭头前,选择【Edit Configurations…】。
  2. 指定【Python】为配置类型。
  3. 在【Script】里,指定manage.py的(全)路径。
  4. 在【Script parameters】里,填写test

这样做,虽然可以执行测试,并且在【Run】的窗口里也有不错的显示,但毕竟不是IDE所支持的测试。 如果其中部分case失败,并不能分别显示、单独重测。

正解

孤实际使用的测试框架,是pytest。 它可以兼容unittest,并且有自己独到之处。

由于不是默认的测试框架,所以在一个项目中使用前,往往需要一些准备。 在本文这个Django的问题中,这反而是个优点。 有一个专门兼容Djangopytest插件——pytest-django,很好地处理了这个问题。

pip install pytest-django

把以下内容,写到pytest.initox.ini文件中。

[pytest]
DJANGO_SETTINGS_MODULE = test_settings
python_files = tests.py test_*.py *_tests.py

也可以在setup.cfg中,写类似内容。

[tool:pytest]
DJANGO_SETTINGS_MODULE = test_settings
python_files = tests.py test_*.py *_tests.py

在终端中,执行pytest即可执行测试。 在PyCharm中,添加一个【Python tests】【py.test】的执行入口,几乎不需要额外配置,即可成功执行。

最后,点击那个向右的绿色箭头!

All Tests Passed!



本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可,详见本站版权声明

本站没有任何支持评论功能的计划。 如果你对本站的设计、内容、观点有什么意见,欢迎来信指正。


作者:匿蟒 邮箱:[email protected] 备案:闽ICP备15022549号


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK