【问题标题】:Can I run Django tests in pycharm community edition?我可以在 pycharm 社区版中运行 Django 测试吗?
【发布时间】:2018-07-23 14:46:27
【问题描述】:

我有一个 Django 项目,其中包含一些我刚刚导入 PyCharm 的测试。我设法对其进行了配置,以便我可以运行服务器并且工作正常,但现在我也想运行测试。我试图创建一个基于路径的测试配置,并给出了 manage.py 路径和测试命令以及我的设置文件作为参数,但我得到了以下神秘的错误消息:

Testing started at 10:12 ...
/Users/jonathan/anaconda/bin/python "/Applications/PyCharm CE.app/Contents/helpers/pycharm/_jb_unittest_runner.py" --path /Users/jonathan/Work/GenettaSoft/modeling-web/modeling/manage.py -- test --settings=Modeling.settings.tests
Launching unittests with arguments python -m unittest /Users/jonathan/Work/GenettaSoft/modeling-web/modeling/manage.py test --settings=Modeling.settings.tests in /Users/jonathan/Work/GenettaSoft/modeling-web/modeling

usage: python -m unittest [-h] [-v] [-q] [--locals] [-f] [-c]
                          [tests [tests ...]]
python -m unittest: error: unrecognized arguments: --settings=Modeling.settings.tests

Process finished with exit code 2
Empty test suite.

它一定是以某种错误的方式运行。这根本就不能做吗?

附言。我找到了Running Django tests in PyCharm,但它似乎根本不相关(更旧的版本?),因为我得到不同的错误并且事情看起来非常不同。

【问题讨论】:

标签: python django unit-testing pycharm


【解决方案1】:

您可以使用标准 python 配置,而不是 python unittest 进行 django 测试。只需添加新的python运行/调试配置,选择manage.py作为文件并指定参数test --settings=Modeling.settings.tests

【讨论】:

【解决方案2】:

您还可以编辑 PyCharm 的测试运行器帮助脚本。对我来说,它位于/opt/JetBrains/PyCharm/plugins/python-ce/helpers/pycharm/_jb_nosetest_runner.py。然后执行import django 并在主入口点之后立即执行django.setup()。为了完整起见,我已经包含了我机器中的整个文件。

# coding=utf-8
import re

import nose
import sys 
import django

from _jb_runner_tools import jb_start_tests, jb_patch_separator, jb_doc_args, JB_DISABLE_BUFFERING
from teamcity.nose_report import TeamcityReport

if __name__ == '__main__':
    django.setup()
    path, targets, additional_args = jb_start_tests()
    sys.argv += [path] if path else jb_patch_separator(targets, fs_glue="/", python_glue=".", fs_to_python_glue=".py:")
    sys.argv += additional_args
    if JB_DISABLE_BUFFERING and "-s" not in sys.argv:
        sys.argv += ["-s"]
    jb_doc_args("Nosetest", sys.argv)
    sys.exit(nose.main(addplugins=[TeamcityReport()]))

然后您可以右键单击Project 工具窗口中的任何测试,然后单击Run test。您也可以右键单元测试文件所在的任何目录,然后单击Run Unittests in tests

注意:在运行单元测试之前,您需要确保将所有必需的环境变量添加到运行配置中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-31
    • 2018-01-03
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 2020-09-19
    • 2017-02-13
    • 1970-01-01
    相关资源
    最近更新 更多