在pytest中导入文件不匹配
import file mismatch in pytest
我在包中有一个文件名中有 'test',当我 运行 pytest 时我得到一个错误
import file mismatch:
imported module 'my_project.my_file_test' has this __file__ attribute:
/my_project/src/my_project/build/lib/python2.7/site-packages/foo/my_file_test.py
which is not the same as the test file we want to collect:
/my_project/src/my_project/build/private/python2.7/lib/foo/my_file_test.py
HINT: remove __pycache__ / .pyc files and/or use a unique basename for your test file modules
如果我从文件中删除 'test' 它工作正常但遗憾的是我无法更改它。
所以问题是如何告诉pytest忽略这个文件?
最后很简单,我只需要将测试文件模式添加到 pytest.ini
文件中即可:
python_files = test_*.py
所以 pytest 停止查找名称末尾带有 test
的文件,这是默认情况下所做的。
在我的例子中,测试目录中缺少 __init__.py
文件。
即使我的文件名与其他文件名不完全相同,我也遇到了同样的问题。
我有 test_01_login_chrome.py
和 test_01_login_firefox.py
我得到的错误
import file mismatch:
imported module 'test_01_login_chrome.py' has this __file__ attribute:
/Users/avicii/PycharmProjects/Omni_Sanity/TestCase/Firefox_TestCases/test_01_login_chrome.py
which is not the same as the test file we want to collect:
/Users/avicii/PycharmProjects/Omni_Sanity/TestCase/01_Chrome_TestCases/test_01_login_chrome.py
HINT: remove __pycache__ / .pyc files and/or use a unique basename for your test file modules
我尝试将 __init__.py
添加到测试用例文件夹,但没有成功。
然后我尝试了一个解决方法。我为我的测试用例创建了一个 python 包,它默认创建 __init__.py
,然后将我的测试用例移动到该文件夹。
我的问题已经解决了。
我在包中有一个文件名中有 'test',当我 运行 pytest 时我得到一个错误
import file mismatch:
imported module 'my_project.my_file_test' has this __file__ attribute:
/my_project/src/my_project/build/lib/python2.7/site-packages/foo/my_file_test.py
which is not the same as the test file we want to collect:
/my_project/src/my_project/build/private/python2.7/lib/foo/my_file_test.py
HINT: remove __pycache__ / .pyc files and/or use a unique basename for your test file modules
如果我从文件中删除 'test' 它工作正常但遗憾的是我无法更改它。
所以问题是如何告诉pytest忽略这个文件?
最后很简单,我只需要将测试文件模式添加到 pytest.ini
文件中即可:
python_files = test_*.py
所以 pytest 停止查找名称末尾带有 test
的文件,这是默认情况下所做的。
在我的例子中,测试目录中缺少 __init__.py
文件。
即使我的文件名与其他文件名不完全相同,我也遇到了同样的问题。
我有 test_01_login_chrome.py
和 test_01_login_firefox.py
我得到的错误
import file mismatch:
imported module 'test_01_login_chrome.py' has this __file__ attribute:
/Users/avicii/PycharmProjects/Omni_Sanity/TestCase/Firefox_TestCases/test_01_login_chrome.py
which is not the same as the test file we want to collect:
/Users/avicii/PycharmProjects/Omni_Sanity/TestCase/01_Chrome_TestCases/test_01_login_chrome.py
HINT: remove __pycache__ / .pyc files and/or use a unique basename for your test file modules
我尝试将 __init__.py
添加到测试用例文件夹,但没有成功。
然后我尝试了一个解决方法。我为我的测试用例创建了一个 python 包,它默认创建 __init__.py
,然后将我的测试用例移动到该文件夹。
我的问题已经解决了。