Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Travis无法在Python 3变体中导入我的测试模块_Python_Python 2.7_Unit Testing_Python 3.x_Travis Ci - Fatal编程技术网

Travis无法在Python 3变体中导入我的测试模块

Travis无法在Python 3变体中导入我的测试模块,python,python-2.7,unit-testing,python-3.x,travis-ci,Python,Python 2.7,Unit Testing,Python 3.x,Travis Ci,我正试图在Travis CI上针对Python的多个变体测试我的应用程序。在Python2.7中,测试按预期通过。然而,在Python3.4中,我得到了这种回溯 ERROR: tests.test_mymodule (unittest.loader.ModuleImportFailure) ---------------------------------------------------------------------- Traceback (most recent call last)

我正试图在Travis CI上针对Python的多个变体测试我的应用程序。在Python2.7中,测试按预期通过。然而,在Python3.4中,我得到了这种回溯

ERROR: tests.test_mymodule (unittest.loader.ModuleImportFailure)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/opt/python/3.4.2/lib/python3.4/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/opt/python/3.4.2/lib/python3.4/unittest/case.py", line 577, in run
    testMethod()
  File "/opt/python/3.4.2/lib/python3.4/unittest/loader.py", line 32, in testFailure
    raise exception
ImportError: Failed to import test module: tests.test_mymodule
Traceback (most recent call last):
  File "/opt/python/3.4.2/lib/python3.4/unittest/loader.py", line 312, in _find_tests
    module = self._get_module_from_name(name)
  File "/opt/python/3.4.2/lib/python3.4/unittest/loader.py", line 290, in _get_module_from_name
    __import__(name)
  File "/home/travis/build/MyGitHubName/mymodule/tests/test_mymodule.py", line 8, in <module>
    from mymodule import mymodule
  File "/home/travis/build/MyGitHubName/mymodule/mymodule/__init__.py", line 1, in <module>
    from mymodule import MyModule
ImportError: cannot import name 'MyModule'
在Travis上,我尝试通过两种方式运行测试

python setup.py test

mymodule
的My
\uuuuu init\uuuuu.py
如下所示:

from mymodule import MyModule
mymodule.py
包含
mymodule


同样,由于导入错误,它们在Python2.7上工作,而不是在3.4或3.5上工作。我需要对导入进行哪些调整,以允许我的测试在Python 2.7和Python 3.4/3.5中运行?

假设您有这样的项目结构:

from mymodule import MyModule

您确实会遇到这个错误,因为在python3中应该更明确地说明您的导入:

因此,只需将
mymodule/_uinit_uuuuuy.py
中的import语句编辑为显式:

from.mymodule导入mymodule

python -m unittest discover
from mymodule import MyModule