ich PyCharm bei einem meiner Universität Projekten verwenden und ich wollte es mit unittest
Modul integriert, aber ich habe ein Problem mit meinem ProjektPyCharm und Unittesting - Strukturierung Projekt
Teil des Projektes Strukturierung abstrakte Syntax umfasst die Bildung von Bäume, so erstellte ich AST
Verzeichnis und legte __init__.py
dort, dann habe ich expression
Modul erstellt. Ich wollte meine Tests in test/
Unterverzeichnis setzen, so würde es so aussehen:
AST/
__init__.py
expression.py
test/
some_test.py
utils.py
jetzt habe ich das Modul auch in meinem AST
genannt symbol_table
und Modul utils
, Beispiel Test-Klasse sieht aus wie
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())
wenn ich direkt auf diese Datei klicken und Run Unittest in ...
ich erhalte Fehler:
/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
Ich habe über dieses Problem gelesen und wenn ich das richtig verstehe, wird diese Datei so behandelt, als wäre sie im Top-Level-Paket, so dass ich keine relativen Importe verwenden kann.
Aber wenn das der Fall ist, wie kann ich Komponententests von pycharm ausführen und auch meine aktuelle Projektstruktur beibehalten?
Wenn ich mich nicht täuscht, Tests in Unterpaket setzt ziemlich beliebt ist (http://as.ynchrono.us/2007/12/filesystem-structure-of-python-project_21.html), so muss es irgendeine Art von Lösung
PyCharm können Sie Ordner als 'Test root' markieren. –