【インターンステラ】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を作ることでそのディレクトリをパッケージとして扱ってくれるようになります。

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






このブログの人気の投稿

【GCP】Compute EngineでVPNサーバーを立てるときの注意点

【GCP】Compute Engineからメール送信する方法 (SendGrid編)

【AWS】IAMFullAccessを付与せずIAM Roleの作成とアタッチを行う方法