私は私の大学のプロジェクトのひとつで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())
のように見え、
utils
と呼ば
symbol_table
とモジュールと呼ばれます
私は右、このファイルをクリックして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あなたは「テストルート」としてフォルダにマークを付けることができます。 –