web-dev-qa-db-ja.com

ImportError:テストモジュールのインポートに失敗しました:

次のチュートリアルで問題が発生しています。テストのポイントに達し、実行中にエラーが発生し続けます

python manage.py test

これが私のエラーです:

(restapi) chrismaltez@Chriss-MacBook-Pro:~/Desktop/pycharmprojects/UDEMY/restapi/src$ python manage.py test
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
..E
======================================================================
ERROR: src.status.tests (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: src.status.tests
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/loader.py", line 428, in _find_test_path
    module = self._get_module_from_name(name)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/loader.py", line 369, in _get_module_from_name
    __import__(name)
  File "/Users/chrismaltez/Desktop/pycharmprojects/UDEMY/restapi/src/status/tests.py", line 6, in <module>
    from .models import Status
  File "/Users/chrismaltez/Desktop/pycharmprojects/UDEMY/restapi/src/status/models.py", line 20, in <module>
    class Status(models.Model): #fb status, instagram post, tween, linkedin post
  File "/Users/chrismaltez/Desktop/pycharmprojects/UDEMY/restapi/lib/python3.6/site-packages/Django/db/models/base.py", line 118, in __new__
    "INSTALLED_APPS." % (module, name)
RuntimeError: Model class src.status.models.Status doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.


----------------------------------------------------------------------
Ran 3 tests in 0.096s

ここにインストールされているアプリのステータスがあるため、このエラーが発生する理由がわかりません:

INSTALLED_APPS = [
        'Django.contrib.admin',
        'Django.contrib.auth',
        'Django.contrib.contenttypes',
        'Django.contrib.sessions',
        'Django.contrib.messages',
        'Django.contrib.staticfiles',

        #third party
        'rest_framework',

        #local
        'accounts',
        'status',
        'updates',
    ]

そして、ここに私がエラーを抱えていると言っている私のモデルがあります:

from Django.conf import settings
from Django.db import models


def upload_status_image(instance, filename):
    return "status/{user}/{filename}".format(user=instance.user, filename=filename)


class StatusQuerySet(models.QuerySet):
    pass

class StatusManager(models.Manager):
    def get_queryset(self):
        return StatusQuerySet(self.model, using=self._db)


# Create your models here.
class Status(models.Model): #fb status, instagram post, tween, linkedin post
    user            = models.ForeignKey(settings.AUTH_USER_MODEL) # user instance .save
    content         = models.TextField(null=True, blank=True)
    image           = models.ImageField(upload_to=upload_status_image, null=True, blank=True) # great 3rd part package = Django storanges --> AWS#pip install pillow to handle images
    updated         = models.DateTimeField(auto_now=True)
    timestamp       = models.DateTimeField(auto_now_add=True)

    objects = StatusManager

    def __str__(self):
        return str(self.content)[:50]

    class Meta:
        verbose_name = "Status post"
        verbose_name_plural = "Status posts"


    @property
    def owner(self):
        return self.user

macでDjango 1.11.8で実行しています。

Makemigrationsを実行しても、エラーは発生しません。サーバーを実行すると、エラーは発生しません。私はこれを試しました solution が、何もうまくいきませんでした。

どんな助けもありがたいです。

-update- filetree:

restapi
|-bin
|-include
|-lib
|-scripts
|-src
  |-accounts
  |  |-api
  |  |  |-user
  |  |  |  |-__init__.py
  |  |  |  |-serializers.py
  |  |  |  |-urls.py
  |  |  |  |-views.py
  |  |  |-__init__.py
  |  |  |-permissions.py
  |  |  |-serializers.py
  |  |  |-test_user_api.py
  |  |  |-urls.py
  |  |  |-utils.py
  |  |  |-views.py
  |  |-+migrations
  |  |-__init__.py
  |  |-admin.py
  |  |-apps.py
  |  |-models.py
  |  |-tests.py
  |  |-views.py
  |-cfeapi
  |  |-restconf
  |  |  |-__init__.py
  |  |  |-main.py
  |  |  |-pagination.py
  |  |-__init__.py
  |  |-mixins.py
  |  |-settings.py
  |  |-urls.py
  |  |-wsgi.py
  |-status
    |-api    
    |  |-__init__.py
    |  |-serializers.py
    |  |-urls.py
    |  |-views.py
    |+migrations
    |-__init__.py
    |-admin.py
    |-apps.py
    |-forms.py
    |-models.py
    |-tests.py
    |-views.py
6
Cflux

この問題に遭遇したとき、直接指定していないパスのフォルダーに対してModuleNotFoundErrorが発生しました。

PyCharm内でテストファイルを実行していました。

修正により、テストファイルにメインエントリポイントが追加されました。

if __name__ == '__main__':
    unittest.main()
1
rmooney