2013-05-17 2 views
7
내 대학 프로젝트 중 하나에 pycharm를 사용하고

내가 원한은 unittest 모듈로 통합,하지만 난 추상 구문을 생성하는 것을 포함 내 프로젝트이 프로젝트의pycharm 및 유닛 테스트 - 구조 프로젝트

파트를 구성에 문제가 나무, 그래서 내가 AST 디렉토리를 만들고 __init__.py 넣어, expression 모듈을 만들었습니다. 나는 test/ 하위 디렉토리에 내 테스트를 넣고 싶어, 그래서 그 결과는 다음과 같습니다

지금
AST/ 
    __init__.py 
    expression.py 
    test/ 
     some_test.py 
    utils.py 

나는이 또한 AST 예를 테스트 클래스는

import unittest 
from ...AST import expression 
from ...AST import utils 


class ConstantExpressionTest(unittest.TestCase): 

    def testConstantExpressionCheck(self): 
     constantExpression = expression.ConstantExpression(17, 5, utils.TYPES.INT) 
     self.assertTrue(constantExpression.check()) 
처럼 보이는 symbol_table 및 모듈 utils라고 불리는 내에서 모듈

내가 바로이 파일을 클릭하고 Run Unittest in ...을 선택할 때 내가 점점 오전 오류 :

/usr/bin/python2.7 /home/xubuntu/Downloads/pycharm-2.7.2/helpers/pycharm/utrunner.py /home/xubuntu/Przedmioty/VI/kompilatory/tk-projekt/src/AST/test/test_constant_expression.py true 
Testing started at 12:06 PM ... 
Traceback (most recent call last): 
    File "/home/xubuntu/Downloads/pycharm-2.7.2/helpers/pycharm/utrunner.py", line 110, in <module> 
    modules = [loadSource(a[0])] 
    File "/home/xubuntu/Downloads/pycharm-2.7.2/helpers/pycharm/utrunner.py", line 34, in loadSource 
    module = imp.load_source(moduleName, fileName) 
    File "/home/xubuntu/Przedmioty/VI/kompilatory/tk-projekt/src/AST/test/test_constant_expression.py", line 2, in <module> 
    from ...AST import utils 
ValueError: Attempted relative import in non-package 

Process finished with exit code 1 

이 문제에 대해 읽었으며이 파일을 이해하면이 파일이 최상위 패키지에있는 것처럼 처리되므로 상대 가져 오기를 사용할 수 없습니다.

하지만 그렇다면 pycharm에서 단위 테스트를 실행하고 현재 프로젝트 구조를 유지하는 방법은 무엇입니까?

내가 잘못 아니에요 경우, 서브 패키지에서 테스트를 퍼팅 꽤 인기가있다 (http://as.ynchrono.us/2007/12/filesystem-structure-of-python-project_21.html) 그래서 솔루션

답변

2

그럼 어떤 종류가 있어야한다, 즉 조금 바보입니다, 나는 pycharm 루트를 추가하는 발견 프로젝트의 루트에서 정상적인 가져 오기를 사용할 수 있습니다.

그래서 예를 들어 나는

+5

pycharm 당신이 '테스트 루트'로 폴더를 표시 할 수 있습니다 내 some_test 파일에

from AST import expression를 작성할 수 있습니다. –

관련 문제