ImportError:无法从“ myModule”导入名称“ myClass”:我在哪里弄糟?

时间:2019-08-05 02:04:31

标签: python

我正在尝试使用Python进行单元测试,但是我已经严重地脱离了实践,并且遇到了导入方面的问题。

自从我做Python以来已经很长时间了,我也试图进行单元测试。直到最近我大部分时间都在使用bash,所以我可能忽略了一些东西。它在Python 3上,但是我认为版本最终没有关系。只显示相关代码。

Directory structure:
myProject/
|
\keter/
|    |-keter.py
|    |-__init__.py
|
\tests/
|    |- test_first.py

在keter.py

import os
import zipfile
import re
import xml.dom.minidom
class Converter:
    def my_function(params):
        #do stuff

在test_first.py

import unittest
import sys
sys.path.append('../')
from keter import Converter

class TestConverter(unittest.TestCase):

    def test_instantiate(self):
        my_converter = Converter()
        self.assertIsInstance(my_converter,Converter)

尝试运行测试时...

$ python -m unittest discover
E
======================================================================
ERROR: test_first (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: test_first
Traceback (most recent call last):
  File "path_to_python\lib\unittest\loader.py", line 436, in _find_test_path
    module = self._get_module_from_name(name)
  File "path_to_python\lib\unittest\loader.py", line 377, in _get_module_from_name
    __import__(name)
  File "path_to_project\tests\test_first.py", line 5, in <module>
    from keter import Converter
ImportError: cannot import name 'Converter' from 'keter' (..\keter\__init__.py)


----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (errors=1)

1 个答案:

答案 0 :(得分:0)

尝试像这样更改您的test_first.py。

import unittest
import sys
sys.path.append('../')
import keter

class TestConverter(unittest.TestCase):

    def test_instantiate(self):
        my_converter = keter.Converter()
        self.assertIsInstance(my_converter,Converter)