VSCode Python 测试发现由于导入而未正确加载
VSCode Python test discovery not loading properly because of imports
我有一个目录结构:
Business Logic
excel_format_error_checks.py
tests
test_excel_format_error_checks.py
当我像下面这样设置 excel_format_error_checks 的导入时,VSCode 测试发现会出错
ModuleNotFoundError: No module named 'Business_Logic'
test_excel_format_error_checks.py
import sys
sys.path.append('..')
from Business_Logic import excel_format_error_checks
class TestExcelFormatErrorChecks(TestCase):
@patch('Business_Logic.excel_format_error_checks.openpyxl')
def test_tgl_not_missing_from_titles(self,mock_openpyxl):
...
如果我将导入更改为 from ..Business_Logic import excel_format_error_checks
,测试发现有效。
然后当我尝试 运行 来自 VSCode 测试发现的测试时,由于 @patch 路径 ModuleNotFoundError: No module named 'Business_Logic'
.
,我得到一个错误
当我尝试 运行 从终端进行测试时,出现错误
ImportError: Failed to import test module: test_excel_format_error_checks Traceback (most recent call last): File "C:\Users\brady\AppData\Local\Programs\Python\Python310\lib\unittest\loader.py", line 154, in loadTestsFromName module = __import__(module_name) File "C:\Users\brady\Desktop\excel_formatting\excel_format_website\api\tests\test_excel_format_error_checks.py", line 6, in <module> from ..Business_Logic import excel_format_error_checks ImportError: attempted relative import with no known parent package
问题,1.why 测试发现是否仅在我将 .. 添加到导入时才起作用
2. 如何解决问题/修复补丁路径
谢谢
在python语言中,import通常只在文件的当前目录下查找,而你的文件目录显然不在同一个文件夹中。
我们可以使用下面的代码来提供相对路径。当然,更常用的是绝对路径。
import os
import sys
os.path.join(os.path.dirname(__file__), '../')
sys.path.append(os.path.join(os.path.dirname(__file__), '../'))
from BusinessLogic import excel_format_error_checks
我有一个目录结构:
Business Logic
excel_format_error_checks.py
tests
test_excel_format_error_checks.py
当我像下面这样设置 excel_format_error_checks 的导入时,VSCode 测试发现会出错
ModuleNotFoundError: No module named 'Business_Logic'
test_excel_format_error_checks.py
import sys
sys.path.append('..')
from Business_Logic import excel_format_error_checks
class TestExcelFormatErrorChecks(TestCase):
@patch('Business_Logic.excel_format_error_checks.openpyxl')
def test_tgl_not_missing_from_titles(self,mock_openpyxl):
...
如果我将导入更改为 from ..Business_Logic import excel_format_error_checks
,测试发现有效。
然后当我尝试 运行 来自 VSCode 测试发现的测试时,由于 @patch 路径 ModuleNotFoundError: No module named 'Business_Logic'
.
当我尝试 运行 从终端进行测试时,出现错误
ImportError: Failed to import test module: test_excel_format_error_checks Traceback (most recent call last): File "C:\Users\brady\AppData\Local\Programs\Python\Python310\lib\unittest\loader.py", line 154, in loadTestsFromName module = __import__(module_name) File "C:\Users\brady\Desktop\excel_formatting\excel_format_website\api\tests\test_excel_format_error_checks.py", line 6, in <module> from ..Business_Logic import excel_format_error_checks ImportError: attempted relative import with no known parent package
问题,1.why 测试发现是否仅在我将 .. 添加到导入时才起作用 2. 如何解决问题/修复补丁路径
谢谢
在python语言中,import通常只在文件的当前目录下查找,而你的文件目录显然不在同一个文件夹中。
我们可以使用下面的代码来提供相对路径。当然,更常用的是绝对路径。
import os
import sys
os.path.join(os.path.dirname(__file__), '../')
sys.path.append(os.path.join(os.path.dirname(__file__), '../'))
from BusinessLogic import excel_format_error_checks