簡體   English   中英

pytest“未命名模塊”錯誤

[英]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項目中存在文件夾配置標記。 如果您在設置中將應用程序文件夾設置為“源”,則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>)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM