日本語 English
インターステラ株式会社の技術ブログです

【インターンステラ】Django学習備忘録

Djangoでテストをする際の問題
作成したアプリに対してテストを行おうとした際、発生したエラーの解決策をここに残します。
$ python manage.py test contacts.tests.tests_models
テストを実行しようと上記のコマンドを入力した際、
Traceback (most recent call last):
  File “manage.py”, line 24, in <module>
    execute_from_command_line(sys.argv)
  File “/Users/
    tests = self.test_loader.loadTestsFromName(label)
  File”/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/loader.py”, line 100, in loadTestsFromName
    parent, obj = obj, getattr(obj, part)
AttributeError: ‘module’ object has no attribute ‘tests’
というエラーが発生しました。
ディレクトリ構造はこんな感じ
.
└── contacts
    └── tests
        └── tests_models
$ python manage.py test
$ python manage.py test contacts
は実行できるのに…(正確な結果は出ていない)
この問題はcontacts下のtestsディレクトリ内に__init__.pyが存在していないことが原因でした。
解決策としてtestsディレクトリ内で
$ touch contacts/tests/__init__.py
を実行するだけで良かったみたいです。
__init__.pyを作ることでそのディレクトリをパッケージとして扱ってくれるようになります。
解った今なら簡単ですが、解るまでに大分かかりました。
PAGE TOP