1. ホーム
  2. python

[解決済み] AttributeError: 'module' オブジェクトには 'tests' という属性がありません。

2022-11-24 21:46:48

質問

このコマンドを実行しています。

python manage.py test project.apps.app1.tests

で、このようなエラーが発生します。

AttributeError: 'module' オブジェクトには 'tests' という属性がありません。

以下は、私のディレクトリ構造です。また、インストールしたアプリの設定にapp1を追加しました。

Traceback (most recent call last):
    File "manage.py", line 10, in <module> execute_from_command_line(sys.argv)
    File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
    File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
    File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 50, in run_from_argv
    super(Command, self).run_from_argv(argv)
    File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
    File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 71, in execute
    super(Command, self).execute(*args, **options)
    File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute
    output = self.handle(*args, **options)
    File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 88, in handle
    failures = test_runner.run_tests(test_labels)
    File "/home/username/local/dev/local/lib/python2.7/site-packages/django/test/runner.py", line 146, in run_tests
    suite = self.build_suite(test_labels, extra_tests)
    File "/home/username/local/dev/local/lib/python2.7/site-packages/django/test/runner.py", line 66, in build_suite
    tests = self.test_loader.loadTestsFromName(label)
    File "/usr/lib/python2.7/unittest/loader.py", line 100, in loadTestsFromName
    parent, obj = obj, getattr(obj, part)
    AttributeError: 'module' object has no attribute 'tests'

ディレクトリ構造です。

どのように解決するのですか?

私は最終的に別の問題に取り組んでそれを理解した。問題は、私のテストがインポートを見つけることができなかったことです。

テストがインポートに失敗すると、上記のようなエラーが出るようです。テストスイートは壊れたテストをインポートすることができないので、これは理にかなっています。少なくとも、私はこれが起こっていることだと思います。なぜなら、私はテストファイル内のインポートを修正し、確かにそれが機能し始めたからです。

テストケースを検証するために、Pythonコンソールでテストケースファイルをインポートしてみてください。

例です。

from project.apps.app1.tests import *