【问题标题】:"Empty test suite" by running Django tests with Pycharm (tests are found if launched from the shell)通过使用 Pycharm 运行 Django 测试来“空测试套件”(如果从 shell 启动,则会找到测试)
【发布时间】:2015-08-14 14:24:24
【问题描述】:

我很难尝试使用 PyCharm 运行我的 Django 测试。 过去我使用“python 运行配置”很容易做到这一点,其中我使用manage.py 运行它们,我在 OSX 上并使用 python 2.7、Django

我创建了一个 python 脚本:

import subprocess


def main():
    subprocess.call('./venv_activator.sh', shell=True)


if __name__ == '__main__':
    main()

然后是 bash 脚本 (venv_activator.sh):

#!/usr/bin/env bash
source .ENV/bin/activate
python manage.py test myapp -p "*_tests.py" --noinput -v 2 --settings=settings.test

在实践中,python 脚本用于为 Pycharm 创建“python 运行配置”,然后激活 virtualenv 并调用 django test 命令。

ps:是的,我在 PyCharm 中开启了“Django support”(我在 virtualenv 下配置了 python 解释器)

【问题讨论】:

    标签: python django unit-testing pycharm


    【解决方案1】:

    就我而言,这是因为我的测试方法的名称不是以test 开头的。重命名它们,PyCharm 开始正确运行它们。

    【讨论】:

      【解决方案2】:

      问题在于 PyCharm 没有将给定的搜索模式应用于测试文件 (-p "*_tests.py")。这是一个已经被报告的错误:https://youtrack.jetbrains.com/issue/PY-15869

      解决方案是简单地重命名我的文件:P

      【讨论】:

        【解决方案3】:

        使用 pycharm,您可以通过创建测试配置直接运行您的测试。使用运行>编辑配置创建配置。从 Django 测试中添加配置,设置虚拟环境路径、工作目录(manage.py 的路径)、目标模块(如 complete_project 或 complete_project.app_name)。 运行配置,它将运行相应模块的tests.py中的测试。

        【讨论】:

        • 我知道并且我已经尝试过了,但它不起作用......它找不到测试
        • 每个函数都必须以test开头,比如test_articles。你是否也为test_db设置了db配置?你能说清楚吗,因为我已经实现了,并且单元测试工作正常。
        • 我知道应该如何命名测试,并且正如我所写,如果我从 shell 运行测试(通过运行“python manage.py test myapp”一旦使用“source .ENV/bin”激活 virtualenv /activate") 一切正常,所以这不是我如何编写它们或我的 django/python 配置的问题......问题是要了解使用 Pycharm 运行配置时有什么区别......我唯一能看到的是不是 Pycharm 没有激活 virtualenv :P
        • 尝试在pycharm的项目解释器中设置虚拟环境的python文件路径>>偏好>>项目解释器。喜欢 ~/Envs/MyVirtualenv/bin/python 希望这有帮助,如果仍然有问题,我可以更详细地告诉它。
        • 我已经这样做了,我还将我的项目目录添加到 $pythonpath :(
        猜你喜欢
        • 2020-06-14
        • 1970-01-01
        • 2015-09-29
        • 2021-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-15
        • 1970-01-01
        相关资源
        最近更新 更多