【debug】PyCharm运行python脚本,报“没有发现测试”“空套件”

在PyCharm中,遇到右键运行以test开头的脚本导致的问题,解决方案是更改脚本名称或者通过终端使用python命令运行。尝试了unittest等方法未解决问题,最终通过简单修改脚本名字或使用命令行方式成功运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

  • PyCharm中,右键运行test_tensorboard.py脚本:

- 关键词:1、在PyCharm中右键运行;2、脚本名称以test开头;在这里插入图片描述

解决方法:

- 通过自己摸,找到了解决问题的办法:把脚本名称的开头test改掉!

- 或者在PyCharm终端当中使用python+文件名的方式运行;

解决历程:

- 查了好多,有说unittest的,有说其他方式修改的,试过了,在我这没解决问题;

问题解决结果:

在这里插入图片描述

### Pytest 空测试套件的原因 当运行 `pytest` 命令时,如果发现没有任何测试被收集或执行,则认为这是一个空测试套件的情况。这种情况可能由多种因素引起: - **缺少可识别的测试函数**:默认情况下,PyTest 只会查找以 `test_` 开头的方法作为测试用例[^1]。 - **错误配置的装饰器**:不恰当使用的标记可能导致某些测试未被执行。例如,在整个模块级别应用了跳过标签 (`pytestmark = pytest.mark.skip`) 将使得该模块下的所有测试都被忽略。 ```python import pytest # 这里设置了全局跳过的标志位,因此即使有定义好的测试也不会被执行 pytestmark = pytest.mark.skip("all tests still WIP") def test_example(): assert True ``` - **路径设置不当**:指定给 PyTest 的目录或文件路径不对也可能造成找不到任何有效的测试脚本去加载并执行。 ### 处理 Pytest 空测试套件的方法 为了确保能够正常检测到所有的测试案例并且不会意外创建为空的状态,可以采取以下几个措施来解决问题: #### 验证测试命名约定 确认所有待测函数遵循 Python 测试框架的标准命名习惯——即名称前缀为 "test_" 或者放置于名为 "test_*" 或 "*_tests" 的文件中[^2]。 #### 移除不必要的 skip 标记 检查是否有无意间在整个模块顶部添加了类似于下面这样的语句,这会导致整个模块内的测试全部失效而无法参与实际跑批过程。 ```python del pytestmark # 如果确实不需要此变量则删除它 ``` #### 使用 `-v` 参数查看详细的日志输出 通过命令行参数增加 verbosity 来获取更多有关哪些地方出了问题的信息提示;比如使用如下方式启动测试工具: ```bash pytest -v ./path/to/test_directory/ ``` 这样可以帮助定位具体哪个位置出现了异常状况以及为何未能成功找到预期中的单元检验项目列表。 #### 定义合适的 fixture 和依赖关系管理 对于像 b.py 文件那样涉及到多个级别的 fixtures (login 和 login2),应该仔细设计这些辅助资源之间的相互作用机制,防止因为初始化失败而导致后续关联起来的一系列子项都无法顺利开展工作。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值