pytest "No module named" 错误
pytest "No module named" error
我是 python 的新手,正在尝试为我的第一个应用程序编写测试。
简单的应用程序结构:
- app
- tests
__init__.py
- test_main.py
- __init__.py
- main.py
main.py
包含main_func
test_main.py:
from main import main_func
def test_check():
assert main_func() is True
如果我 运行 手动测试,在 app
目录中通过命令 pytest
- 得到这个 错误:
C:\Users\*****\PycharmProjects\checker3>pytest
============================= test session starts =============================
platform win32 -- Python 3.5.2, pytest-3.0.3, py-1.4.31, pluggy-0.4.0
rootdir: C:\Users\*****\PycharmProjects\app, inifile:
collected 0 items / 1 errors
=================================== ERRORS ====================================
_____________________ ERROR collecting tests/test_main.py _____________________
ImportError while importing test module 'C:\Users\*****\PycharmProjects\app\tests\test_main.py'.
Original error message:
'No module named 'main''
Make sure your test modules/packages have valid Python names.
!!!!!!!!!!!!!!!!!!! Interrupted: 1 errors during collection !!!!!!!!!!!!!!!!!!!
=========================== 1 error in 0.14 seconds ===========================
包名是对的。另外,我使用 PyCharm
IDE 并且它不跟踪任何导入包错误。
此外,当我通过 IDE 执行 pytest 测试配置时 - 测试正在运行。
我认为它 运行 在 pycharm 中,因为 pycharm 项目中的文件夹配置标记。如果您在设置中将应用程序文件夹设置为 "Source",则 pycharm 可以包含在任何路径中。
查看详情;
https://www.jetbrains.com/help/pycharm/2016.1/configuring-folders-within-a-content-root.html
它在 shell 中没有 运行,因为它不能包含 main。如果你想包含和 运行,你应该在 sys.
中插入应用程序路径
import sys
sys.path.insert(0, <app folder path>)
我是 python 的新手,正在尝试为我的第一个应用程序编写测试。 简单的应用程序结构:
- app
- tests
__init__.py
- test_main.py
- __init__.py
- main.py
main.py
包含main_func
test_main.py:
from main import main_func
def test_check():
assert main_func() is True
如果我 运行 手动测试,在 app
目录中通过命令 pytest
- 得到这个 错误:
C:\Users\*****\PycharmProjects\checker3>pytest
============================= test session starts =============================
platform win32 -- Python 3.5.2, pytest-3.0.3, py-1.4.31, pluggy-0.4.0
rootdir: C:\Users\*****\PycharmProjects\app, inifile:
collected 0 items / 1 errors
=================================== ERRORS ====================================
_____________________ ERROR collecting tests/test_main.py _____________________
ImportError while importing test module 'C:\Users\*****\PycharmProjects\app\tests\test_main.py'.
Original error message:
'No module named 'main''
Make sure your test modules/packages have valid Python names.
!!!!!!!!!!!!!!!!!!! Interrupted: 1 errors during collection !!!!!!!!!!!!!!!!!!!
=========================== 1 error in 0.14 seconds ===========================
包名是对的。另外,我使用 PyCharm
IDE 并且它不跟踪任何导入包错误。
此外,当我通过 IDE 执行 pytest 测试配置时 - 测试正在运行。
我认为它 运行 在 pycharm 中,因为 pycharm 项目中的文件夹配置标记。如果您在设置中将应用程序文件夹设置为 "Source",则 pycharm 可以包含在任何路径中。
查看详情; https://www.jetbrains.com/help/pycharm/2016.1/configuring-folders-within-a-content-root.html
它在 shell 中没有 运行,因为它不能包含 main。如果你想包含和 运行,你应该在 sys.
中插入应用程序路径import sys
sys.path.insert(0, <app folder path>)