ModuleNotFoundError when 运行 一个简单的 pytest
ModuleNotFoundError when running a simple pytest
Python 版本 3.6
我有以下文件夹结构
.
├── main.py
├── tests/
| └── test_Car.py
└── automobiles/
└── Car.py
my_program.py
from automobiles.Car import Car
p = Car("Grey Sedan")
print(p.descriptive_name())
Car.py
class Car():
description = "Default"
def __init__(self, message):
self.description = message
def descriptive_name(self):
return self.description
test_Car.py
from automobiles.Car import Car
def test_descriptive_name():
input_string = "Blue Hatchback"
p = Car(input_string)
assert(p.descriptive_name() == input_string)
当从项目根文件夹的命令行中 运行ning pytest 时,出现以下错误-
Traceback:
..\..\..\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py:126: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests\test_Car.py:2: in <module>
from automobiles.Car import Car
E ModuleNotFoundError: No module named 'automobiles'
我已经为此苦苦挣扎了一段时间,我想我遗漏了一些明显的东西。
我认为这与丢失的 __init__.py
没有任何关系 - 我试过在 car.py 文件旁边放置一个空的 __init.py__
,错误没有区别。
我需要更改什么才能成功将 test_Car.py
更改为 运行?
您有 2 个选择:
运行 python -m pytest
而不是 pytest
,这也会将当前目录添加到 sys.path
(详见 official docs ).
在tests/下添加一个__init__.py文件,然后就可以运行 pytest
。如果测试存在于应用程序代码之外,这基本上使 pytest 能够发现测试。您可以在官方文档的 Tests outside application code 部分找到有关此内容的更多详细信息。
希望对您有所帮助!
Python 版本 3.6
我有以下文件夹结构
.
├── main.py
├── tests/
| └── test_Car.py
└── automobiles/
└── Car.py
my_program.py
from automobiles.Car import Car
p = Car("Grey Sedan")
print(p.descriptive_name())
Car.py
class Car():
description = "Default"
def __init__(self, message):
self.description = message
def descriptive_name(self):
return self.description
test_Car.py
from automobiles.Car import Car
def test_descriptive_name():
input_string = "Blue Hatchback"
p = Car(input_string)
assert(p.descriptive_name() == input_string)
当从项目根文件夹的命令行中 运行ning pytest 时,出现以下错误-
Traceback:
..\..\..\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py:126: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests\test_Car.py:2: in <module>
from automobiles.Car import Car
E ModuleNotFoundError: No module named 'automobiles'
我已经为此苦苦挣扎了一段时间,我想我遗漏了一些明显的东西。
我认为这与丢失的 __init__.py
没有任何关系 - 我试过在 car.py 文件旁边放置一个空的 __init.py__
,错误没有区别。
我需要更改什么才能成功将 test_Car.py
更改为 运行?
您有 2 个选择:
运行
python -m pytest
而不是pytest
,这也会将当前目录添加到sys.path
(详见 official docs ).在tests/下添加一个__init__.py文件,然后就可以运行
pytest
。如果测试存在于应用程序代码之外,这基本上使 pytest 能够发现测试。您可以在官方文档的 Tests outside application code 部分找到有关此内容的更多详细信息。
希望对您有所帮助!