"tests' module을 잘못 가져옴"은 무엇을 의미합니까?
작동 중인 테스트 라인을 한 줄씩 복사하고 몇 개의 이름을 바꿨습니다(적어도 그렇게 생각했습니다). 그런데 지금 매우 난해한 오류가 나타납니다. (몇 가지 항목을 FOO, BAR로 대체했습니다)
ImportError: 'tests' module incorrectly imported from 'FOO/exports/tests'. Expected 'FOO/exports'. Is this module globally installed?
문제는 제가 오류를 전혀 이해하지 못한다는 것입니다.이 오류 메시지는 무엇을 의미합니까?
전체 스택 추적:
Traceback (most recent call last):
File "BAR/modeling/manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
utility.execute()
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 345, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/commands/test.py", line 30, in run_from_argv
super(Command, self).run_from_argv(argv)
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv
self.execute(*args, **cmd_options)
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/commands/test.py", line 74, in execute
super(Command, self).execute(*args, **options)
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute
output = self.handle(*args, **options)
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/commands/test.py", line 90, in handle
failures = test_runner.run_tests(test_labels)
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/test/runner.py", line 531, in run_tests
suite = self.build_suite(test_labels, extra_tests)
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/test/runner.py", line 451, in build_suite
tests = self.test_loader.discover(start_dir=label, **kwargs)
File "/Users/jonathan/anaconda/lib/python2.7/unittest/loader.py", line 206, in discover
tests = list(self._find_tests(start_dir, pattern))
File "/Users/jonathan/anaconda/lib/python2.7/unittest/loader.py", line 267, in _find_tests
raise ImportError(msg % (mod_name, module_dir, expected_dir))
ImportError: 'tests' module incorrectly imported from 'FOO/exports/tests'. Expected 'FOO/exports'. Is this module globally installed?
제 경험으로는 테스트를 실행할 때 이상한 ImportError는 테스트 모듈 자체의 ImportError에 의해 발생합니다.
테스트 모듈을 가져올 수 있는지 확인합니다.
$ python manage.py shell
...
>>> import foo.exports.tests
편집:
오류가 발생하는 경우 두 디렉토리가 모두 존재하지 않는지 확인합니다.foo/exports/tests파일 하나와foo/exports/tests.py
다니엘 헤퍼가 위의 댓글에서 말한 것처럼, 당신이 둘 다 가지고 있는지 확인해보세요.app/tests폴더와 aapp/tests.py앱에 파일을 저장합니다.
장고startapp를 만듭니다.tests.py파일을 자동으로 저장하기 때문에 미처 알아채지 못한 파일이 있을 수 있습니다.
자동 생성된 를 삭제하기만 하면tests.pyfile, 작동이 되어야 합니다. (분명히 삭제하기 전에 파일 내용을 확인하셔야 합니다!)
이름이 붙은 디렉토리를 작성한 경우tests예를 들어, 그 안에 시험 파일을 작성했습니다.test_views.py,test_models.py, 등, 파일을 제거해야 합니다.test.py명령에 의해 자동으로 생성됩니다.python manage.py startapp.
당신이 둘 다 가지고 있는지 확인해보세요.app/tests폴더 및 앱/tests.py
앱에 파일을 저장합니다.
기본적으로 파일이 자동으로 호출됩니다.tests.py이 파일을 삭제하면 오류가 해결됩니다.
한 마디로 test.py 또는 tests 폴더 삭제 프로젝트 중 하나에서 이전에 작성한 테스트를 5개 이상의 동일한 API를 가진 새 프로젝트에 복사했을 때 동일한 문제가 발생했습니다.보통 저는 테스트라는 새로운 폴더를 만들고 모든 테스트를 각 앱에 대한 폴더에 적습니다. 이 문제를 해결하기 위해 제가 저지른 실수는 동일한 앱에서 테스트 폴더를 만들 때 앱 폴더에서 test.py 파일을 삭제하지 않은 것입니다. 동일한 앱에서 테스트 폴더와 test.py 을 모두 가질 수 없기 때문입니다.
가능한 사례의 목록에 추가하기 위해서입니다.
이 문제는 패키지가 로컬로 설치된 경우에도 가상 환경 내부에서 발생할 수 있습니다.
이 경우 develop 명령을 사용하여 설치된 버전을 "재링크"하면 됩니다(정확한 용어는 모릅니다).
~/dev/stufflib% pip uninstall stufflib
~/dev/stufflib% python setup.py develop
~/dev/stufflib% python setup.py test
저의 경우 문제는 "진짜" 경로가 아닌 symlink에서 프로젝트로 장고 테스트 작업을 시작하려고 했기 때문입니다.symlink를 사용하지 않는 프로젝트 폴더에서 장고 테스트 작업을 실행해도 이 오류가 발생하지 않습니다.
Python이 원하는 파일을 선택해야 하는 방식으로 트리 파일에 test.py 이라는 이름의 파일이 2개가 없는지 확인합니다.
언급URL : https://stackoverflow.com/questions/37525075/what-does-tests-module-incorrectly-imported-mean
'programing' 카테고리의 다른 글
| jquery를 사용하여 div 내부의 텍스트만 바꿉니다. (0) | 2023.10.06 |
|---|---|
| IFTTT에 대한 입력으로 XML 파일을 RSS 피드에 긁습니다. (0) | 2023.10.06 |
| 런타임 오류: 예외를 만들지 못했습니다. (0) | 2023.10.06 |
| fs.약속에 파일을 쓰시오, 비동기-동기적인 것 (0) | 2023.10.06 |
| C 함수 프로토타입에 파라미터 이름을 입력하시겠습니까? (0) | 2023.10.06 |