2012-10-14 1 views
1

저는 장고 응용 프로그램에 대한 사용자 지정 테스트 러너를 작성하고 있습니다. 장고 응용 프로그램 폴더에서 나는이 하나 folder structure of my packagePython 가져 오기 모듈 ImportError

처럼 폴더를 가지고하지만 난이 테스트를 실행하려고 할 때 오류가 발생했습니다 : 나는 믿고

class SeleniumTestCase(TestCase): 
    body 

:이 같은 STH있어 SeleniumTestCase에서

ERROR: AdminLoginTest (unittest.loader.ModuleImportFailure) 
---------------------------------------------------------------------- 
ImportError: Failed to import test module: AdminLoginTest 
Traceback (most recent call last): 
    File "D:\\python27\lib\unittest\loader.py", line 252, in _find_tests 
    module = self._get_module_from_name(name) 
    File "D:\\python27\lib\unittest\loader.py", line 230, in _get_module_f 
rom_name 
    __import__(name) 
    File "D:\\selenium_tests\tests\admin_panel\AdminLoginTest.py", 
line 1, in <module> 
    from selenium_tests.SeleniumTestCase import SeleniumTestCase 
ImportError: No module named selenium_tests.SeleniumTestCase 

내 주자가 아닌 패키지에 문제가 있습니다. 사전에 도움을 주셔서 감사합니다.

+0

'selenium_tests'가 PYTHONPATH에 없습니다. '__init __. py'를'selenium_tests' 디렉토리에 추가하십시오. – Wessie

+0

__init __. pyfile in selenium_tests – John

답변

0

올바르다면 (unittests를 실행하여) 스크립트로 실행하면 AdminLoginTest.py 파일이 작동하지 않으므로 작동하지 않습니다. 이 스크립트를 실행하면 파이썬 인터프리터는 selenium_tests 디렉토리에 도달 할 수 없습니다.

하나의 솔루션으로, 상대적으로 수입을 사용하는 것 즉, 그러나 이것은 당신이 스크립트로 파일 AdminLoginTest.py을 실행하지 중 하나 일 것이기 때문에

from ..selenium_tests.SeleniumTestCase import SeleniumTestCase

. AdminLoginTest.py 파일을 모듈로 가져올 경우에만 상대 가져 오기를 사용할 수 있습니다.

unittests를 최상위 디렉토리로, 다른 모든 클래스를 하위 레벨 디렉토리로 변경하여 디렉토리의 구조를 변경하는 것이 좋습니다. 그러면 가져 오기가 작동합니다.

+0

올바르게 이해하면 selenium_tests/tests/*를 selenium_tests/*로 옮겨야합니까? – John