使用命令python -m pytest tests
运行完整测试时,它失败,并导入文件不匹配错误。
import file mismatch:
imported module 'test_simplifyvcf_integrations' has this __file__ attribute:
/home/promechpc5/Desktop/VCF-SimplifyDev/tests/test_integrations/test_simplifyvcf_integrations.py
which is not the same as the test file we want to collect:
/home/promechpc5/Desktop/VCF-SimplifyDev/tests/testfiles/TestFullApp/test_simplifyvcf_integrations.py
HINT: remove __pycache__ / .pyc files and/or use a unique basename for your test file modules
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 errors during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
在这里,显示的错误是test_simplifyvcf_integration.py,它位于tests文件夹下。但是,当我使用命令python -m pytest tests/test_integrations/test_simplifyvcf_integrations.py
单独运行测试时,它将通过所有测试。
答案 0 :(得分:2)
解决方案在错误消息中:
和/或为测试文件模块使用唯一的基名
您必须确保您的测试中具有唯一的模块名称-pytest会将它们全部提升到顶级名称空间中 ,除非您添加__init__.py
文件以使它们是不同的包
因此,您的选择是:
__init__.py
文件答案 1 :(得分:0)
这一直是与pytest特别相关的问题,因此您不必担心,因为它仅与缓存的文件有关。
步骤1从测试目录中删除所有__pycache__
文件夹。
第2步,根据您用来停止生成这些缓存的方式,在您的bashrc / zshrc文件中添加以下代码段。
export PYTHONDONTWRITEBYTECODE=1