2017-10-15 5 views
2

私は基本的な計算のためのメソッドを持っています。次に、メソッドをunittestingするためのtest_calc.pyという別のファイルを(同じディレクトリに) calc.py file.But私はモジュールを別のモジュールにインポートしようとすると、PythonはSystemErrorを生成します

python3 -m unittest test_calc.py 

または私は名前 == "メイン"

python3 test_calc.py 

か試すが含まれているので、いずれかを使用して、コマンドラインからtest_calc.py実行しようとすると、 IDEから直接それを実行するために、私は

以下
from . import calc 
SystemError: Parent module '' not loaded, cannot perform relative import 

は私のプロジェクト構造の下

enter image description here

のスクリーンショットは、私がcalc.pyをインポートする方法のスクリーンショットであるというエラーを取得しますファイルとそれが

enter image description here

インポートこれはtest_calc.pyファイルどのU内のコードで受け付け私は上記のコードを実行すると、間違ったつもりですerror.What Pythonのthowsは、calc.pyファイルで定義されたメソッド

import unittest 
from . import calc 

class TestCalc(unittest.TestCase): 
    def test_add(self): 
     result = calc.add(5,2) 
     self.assertEqual(result,7) 

if __name__ == "__main__": 
    unittest.main() 

をnitests?

答えて

0

あなたは他の代替

python3 -m unittest mypackage.test_calc.py 

の中で、少なくともにない試してみてください、示唆している、「Relative imports in Python 3」を参照することができますがあなたの "ユニットテストモジュールのフォルダ内のスペースを持っています。

PEP 366も参照してください。

+0

"少なくとも、あなたの 'unittest module'フォルダには空きがないようにしてください。" ---これで問題は解決しました!もう一度ありがとう! –

+0

フォルダの名前をunittest_module.Soに変更しました。 import calc、unittest_module import calcから行いました。 –

+0

@SouvikRay良い解決策:それはそう簡単です。 – VonC

関連する問題