You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不跳过B101规则的情况下执行Poetry Bandit测试?

解决Bandit检测测试文件中assert的B101问题

核心思路

测试代码里的assert是pytest的标准用法,且pytest运行测试时默认不会启用Python的优化编译(-O参数),所以测试中的断言不会被移除,断言失败时测试会正常标记不通过。我们无需全局跳过B101规则,只需让Bandit忽略测试目录的B101检测,同时保留对生产代码的规则校验。

具体方案

方法1:通过pyproject.toml配置(适配Poetry项目,推荐)

在项目根目录的pyproject.toml中添加Bandit配置:

[tool.bandit]
# 若不需要对测试目录做任何Bandit检测,直接排除整个目录
exclude_dirs = ["tests"]

# 更精细的配置:仅在测试目录跳过B101规则,保留其他规则检测
[tool.bandit.skip]
tests = ["B101"]

方法2:使用独立Bandit配置文件

在项目根目录创建.bandit文件:

[bandit]
# 排除整个测试目录
exclude_dirs = tests

# 或仅跳过测试目录的B101规则
skip = B101:tests

验证步骤

  1. 运行Bandit检查:poetry run bandit .,确认测试文件的B101警告不再出现
  2. 运行测试:poetry run pytest tests/test.py,修改断言条件(比如把"XYZ"改为其他值),确认测试会因断言失败而不通过

内容的提问来源于stack exchange,提问作者Sathish Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 11:37:03