【发布时间】:2021-07-18 10:44:26
【问题描述】:
当我为一个函数编写单元测试并运行flake8 test_function().py 时,我收到以下错误:
S101 检测到断言的使用。编译为优化的字节码时,将删除包含的代码。
我的问题:
-
如何在不使用
assert关键字的情况下编写单元测试? -
我们应该忽略 flake8 配置中的单元测试吗?
【问题讨论】:
标签: python unit-testing flake8
当我为一个函数编写单元测试并运行flake8 test_function().py 时,我收到以下错误:
S101 检测到断言的使用。编译为优化的字节码时,将删除包含的代码。
我的问题:
如何在不使用 assert 关键字的情况下编写单元测试?
我们应该忽略 flake8 配置中的单元测试吗?
【问题讨论】:
标签: python unit-testing flake8
imo B101(来自 bandit)是要强制执行的最糟糕的“错误”代码之一——几乎没有人在 python 中使用-O 运行,因为(1)它不会让事情变得更快,并且(2)许多第三方库防御性地使用断言并禁用它可以改变行为
将assert 称为“安全问题”充其量只是危言耸听
也就是说,错误代码在测试中没有意义,所以我建议在那里禁用它:
[flake8]
per-file-ignores =
tests: S101
你也可以通过 bandit 的配置来禁用它,虽然我不太熟悉
免责声明:我是当前的 flake8 维护者
【讨论】: