我必须遵循以下项目结构:
importTesting
├── importTesting
│ ├── main.py
│ ├── module_a.py
│ └── module_b.py
└── tests
└── test.py
from module_b import foo
def bar(x):
return foo(x)
def foo(x):
return x
from module_a import bar
import unittest
from importTesting.module_a import bar
class TestCase(unittest.TestCase):
def test_bar(self):
self.assertEqual(bar(1),1)
我试图通过命令行运行main.py和test.py, 但是当我运行test.py时,我得到了关于模块_b not found的错误:
psagot_api) C:\Users\Roy\PycharmProjects\importTesting>python -m unittest
E
======================================================================
ERROR: tests.test (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: tests.test
Traceback (most recent call last):
File "C:\Users\Roy\anaconda3\envs\psagot_api\lib\unittest\loader.py", line 436, in _find_test_path
module = self._get_module_from_name(name)
File "C:\Users\Roy\anaconda3\envs\psagot_api\lib\unittest\loader.py", line 377, in _get_module_from_name
__import__(name)
File "C:\Users\Roy\PycharmProjects\importTesting\tests\test.py", line 2, in <module>
from importTesting.module_a import bar
File "C:\Users\Roy\PycharmProjects\importTesting\importTesting\module_a.py", line 1, in <module>
from module_b import foo
ModuleNotFoundError: No module named 'module_b'
----------------------------------------------------------------------
Ran 1 test in 0.000s
FAILED (errors=1)
有什么建议吗?包括改变项目结构
编辑-1: 每隔一段时间,我就会受到python导入机制的影响。包含导入的文件夹必须位于sys.path中
可以解决此问题的一些可能性:
1.从代码中向sys.path添加导入/导入
2.使用pip作为软件包安装,然后将导入更改为importetting.something
3.从包含main.py的文件夹中运行python-m pytest 使用-m标记运行会将当前did添加到sys.path
4.将名为conftest.py的文件添加到与main.py相同的目录中 从项目根目录运行pytest时,会将包含conftest的文件夹添加到sys.path
我得说我对这些都不完全满意
谢谢 罗伊
目前没有回答
相关问题 更多 >
编程相关推荐