【问题标题】:S101 Use of assert detected for python testsS101 在 python 测试中检测到断言的使用
【发布时间】:2021-07-18 10:44:26
【问题描述】:

当我为一个函数编写单元测试并运行flake8 test_function().py 时,我收到以下错误:

S101 检测到断言的使用。编译为优化的字节码时,将删除包含的代码。

我的问题:

  1. 如何在不使用 assert 关键字的情况下编写单元测试?

  2. 我们应该忽略 flake8 配置中的单元测试吗?

【问题讨论】:

    标签: python unit-testing flake8


    【解决方案1】:

    imo B101(来自 bandit)是要强制执行的最糟糕的“错误”代码之一——几乎没有人在 python 中使用-O 运行,因为(1)它不会让事情变得更快,并且(2)许多第三方库防御性地使用断言并禁用它可以改变行为

    assert 称为“安全问题”充其量只是危言耸听

    也就是说,错误代码在测试中没有意义,所以我建议在那里禁用它:

    [flake8]
    per-file-ignores =
        tests: S101
    

    你也可以通过 bandit 的配置来禁用它,虽然我不太熟悉


    免责声明:我是当前的 flake8 维护者

    【讨论】:

      猜你喜欢
      • 2011-03-25
      • 1970-01-01
      • 2019-05-08
      • 2017-01-13
      • 2014-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多