如何在测试中让强盗跳过B101?

问题描述

我正在使用强盗检查我的代码中是否存在潜在的安全问题:

bandit -r git-repository/

但是,强盗发现的最常见物品是B101。它由测试中的assert语句触发。我使用pytest,所以这不是问题,而是一种好习惯。我现在使用创建了一个.bandit文件

[bandit]
skips: B101

但这也跳过了许多其他代码。有解决这个问题的方法吗?

解决方法

我使用的解决方案是告诉bandit完全跳过测试:

bandit --configfile bandit.yaml

在项目的根目录中带有以下bandit.yaml

# Do not check paths including `/tests/`:
# they use `assert`,leading to B101 false positives.
exclude_dirs:
    - '/tests/'

bunch relatedissues中有pull requests

,

您可以配置跳过此检查的文件。当您在测试用例中使用 assert 语句时,这通常很有用。

bandit --configfile bandit.yaml

在项目根目录下有如下bandit.yaml

assert_used:
  skips: ['*_test.py','test_*.py']

Link 到原始文档

,

基于documentation,您的配置应类似于 skips: ['B101'],而不是skips: B101(您拥有)。

编辑:
好的,如果我理解正确的话,您想跳过B101文件夹中的tests。 我不知道有什么方法可以指定它,但是我可以想到某种骇客-只需运行两次土匪-一次忽略tests,一次仅在测试中跳过B101。我知道,这不是最优雅的方法,但是应该可以解决您的问题。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...