내가 원한은 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) 그래서 솔루션
pycharm 당신이 '테스트 루트'로 폴더를 표시 할 수 있습니다 내
some_test
파일에from AST import expression
를 작성할 수 있습니다. –