【问题标题】:Running Django tests in PyCharm在 PyCharm 中运行 Django 测试
【发布时间】:2013-12-22 08:05:42
【问题描述】:

我正在尝试在 PyCharm 中运行一个简单的 Django 测试,但由于以下堆栈跟踪而失败-

/home/ramashishb/local/pyenv/testenv/bin/python /opt/pycharm-3.0.2/helpers/pycharm/django_test_manage.py test snippets.SimpleTest.test_simple /home/ramashishb/mine/learn/django-rest/django-rest-tutorial
Testing started at 4:37 PM ...
Traceback (most recent call last):
  File "/opt/pycharm-3.0.2/helpers/pycharm/django_test_manage.py", line 18, in <module>
    import django_test_runner
  File "/opt/pycharm-3.0.2/helpers/pycharm/django_test_runner.py", line 14, in <module>
    from django.test.testcases import TestCase
  File "/home/ramashishb/local/pyenv/testenv/lib/python2.7/site-packages/django/test/__init__.py", line 5, in <module>
    from django.test.client import Client, RequestFactory
  File "/home/ramashishb/local/pyenv/testenv/lib/python2.7/site-packages/django/test/client.py", line 11, in <module>
    from django.contrib.auth import authenticate, login, logout, get_user_model
  File "/home/ramashishb/local/pyenv/testenv/lib/python2.7/site-packages/django/contrib/auth/__init__.py", line 6, in <module>
    from django.middleware.csrf import rotate_token
  File "/home/ramashishb/local/pyenv/testenv/lib/python2.7/site-packages/django/middleware/csrf.py", line 14, in <module>
    from django.utils.cache import patch_vary_headers
  File "/home/ramashishb/local/pyenv/testenv/lib/python2.7/site-packages/django/utils/cache.py", line 26, in <module>
    from django.core.cache import get_cache
  File "/home/ramashishb/local/pyenv/testenv/lib/python2.7/site-packages/django/core/cache/__init__.py", line 69, in <module>
    if DEFAULT_CACHE_ALIAS not in settings.CACHES:
  File "/home/ramashishb/local/pyenv/testenv/lib/python2.7/site-packages/django/conf/__init__.py", line 54, in __getattr__
    self._setup(name)
  File "/home/ramashishb/local/pyenv/testenv/lib/python2.7/site-packages/django/conf/__init__.py", line 47, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

Process finished with exit code 1

测试在控制台上运行良好-./manage.py run test 执行测试之前好像没有设置好东西?

有什么想法吗?

谢谢, 拉姆

【问题讨论】:

  • 你是否在 pycharm 项目设置中启用了 Django 支持,并告诉它使用哪个设置文件?
  • 是的。已启用 Django 支持。我发现我必须明确设置 DJANGO_SETTINGS_MODULE 才能使测试正常工作。

标签: python django testing pycharm


【解决方案1】:

转到菜单file &gt; settings &gt; Django Support 并选择正确的设置文件。

【讨论】:

  • 谢谢 Jan。我发现我必须在运行/调试配置中显式设置 DJANGO_SETTINGS_MODULE 才能运行测试。
  • 我必须先删除我试图运行的测试的现有 Python unittest 运行配置,然后才能将它们作为 Django 测试运行。我不需要设置任何环境变量。
  • 是否可以在 Pycharm 社区版(没有 Django 插件)中运行 Django 测试? (比仅仅运行manage.py test 作为运行配置更集成的方式)
  • 在 Intellij IDEA 中,这是在项目设置中,但是是的,这就是解决方案!
  • @kolen 如果您仍然感兴趣(2 年后 :d ),我刚刚找到了一种通过右键单击运行它们的方法(解决方法):stackoverflow.com/questions/42989471/…
【解决方案2】:

我遇到了同样的问题。我发现我运行的测试类型错误。

import unittest
class MySampleTest(unittest.TestCase):

导致错误

django.core.exceptions.ImproperlyConfigured: Requested setting API_BASE_URL, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

更改为导入到

from django.test import SimpleTestCase

Class MySampleTest(SimpleTestCase):

允许我的测试在 pycharm 内运行。

【讨论】:

猜你喜欢
  • 2014-01-15
  • 1970-01-01
  • 1970-01-01
  • 2020-01-28
  • 2020-04-25
  • 2016-07-27
  • 2018-07-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多