首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在pytest中运行完整测试时会出现导入文件不匹配错误,而单独运行时则通过测试。

在pytest中运行完整测试时会出现导入文件不匹配错误,而单独运行时则通过测试。
EN

Stack Overflow用户
提问于 2019-12-22 14:16:44
回答 2查看 1.6K关注 0票数 3

使用命令python -m pytest tests运行完整测试时,导入文件不匹配错误将失败。

代码语言:javascript
运行
复制
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,它位于“测试”文件夹下。但是当我用命令python -m pytest tests/test_integrations/test_simplifyvcf_integrations.py单独运行测试时,它通过了所有的测试。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-22 18:11:16

这里的解决方案出现在错误消息中:

和/或为您的测试文件模块使用唯一的basename

您必须确保测试中有唯一的模块名-- pytest会将它们全部提升到顶级命名空间中,除非您添加__init__.py文件,使它们成为不同的包。

所以你的选择是:

  • 重命名相同的
  • 文件,添加一些__init__.py文件
票数 5
EN

Stack Overflow用户

发布于 2019-12-22 14:25:04

这是一个与pytest特别相关的问题,所以您不必太担心,因为它只与缓存的文件有关。

步骤1从测试目录中删除所有__pycache__文件夹。

步骤2根据停止生成这些缓存的步骤,在bashrc/zshrc文件中添加以下代码段。

代码语言:javascript
运行
复制
export PYTHONDONTWRITEBYTECODE=1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59444982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档