INTERSETLLAR BLOG

インターステラ社員によるブログ(技術系)

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

Djangoでテストをする際の問題

作成したアプリに対してテストを行おうとした際、発生したエラーの解決策をここに残します。

  $ python manage.py test contacts.tests.tests_models

テストを実行しようと上記のコマンドを入力した際、

.
  Traceback (most recent call last):
    File “manage.py”, line 24, in 
      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を作ることでそのディレクトリをパッケージとして扱ってくれるようになります。

解った今なら簡単ですが、解るまでに大分かかりました。


シェア