S101 在 python 测试中检测到断言的使用

Dee*_*ire 9 python unit-testing flake8

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

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

我的问题:

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

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

Ant*_*ile 29

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

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

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

[flake8]
per-file-ignores =
    tests: S101
Run Code Online (Sandbox Code Playgroud)

你也可以通过 bandit 的配置禁用它,尽管我对此不太熟悉


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