一个flake8扩展,用于检查测试额外样式
项目描述
flake8-fine-pytest
flake8的扩展,用于验证测试结构、额外样式和可读性。
目前我们的检查器
- 验证了原因的存在
@pytest.mark.xfail(reason='Super annoying test, fix it later')
这有助于每个人轻松地了解最初的问题是什么,并减少在修复xfailed测试上浪费的时间。
- 验证测试模块是否位于描述的目录中。可以在
setup.cfg
文件中配置
allowed_test_directories = test_unit,test_integration,test_api
如果以test_
为前缀的文件不在允许的目录列表中,将引发错误
tests/test_models.py:0:1: FP003 File tests/test_models.py is in the wrong directory.
Allowed directories: test_unit,test_integration,test_api,test_migration
- 验证测试函数有一个不太复杂的签名。测试可以配置的参数数量可以在
setup.cfg
文件中配置
allowed_test_arguments_count = 6
如果测试函数的签名太复杂,将引发错误
tests/test_integration/test_models.py:64:1: FP004 test_save_method has too complex
signature. Allowed count of arguments is 6
- 验证测试函数有一个不太复杂的断言块。测试可以配置的断言数量可以在
setup.cfg
文件中配置
allowed_assert_count = 6
如果测试函数的断言块太复杂,将引发错误
tests/test_integration/test_models.py:64:1: FP005 test_save_method has
too many assert statements. Allowed count of asserts is 6
- 验证
xfail
装饰器有直到参数。直到参数必须指定为有效的datetime.date
值,并且不早于当前日期。例如
@pytest.mark.xfail(reason='Test', until=date(2020, 9, 7))
如果xfail
没有这样的标记,flake8将引发错误
tests/test_unit/test_utils.py:128:1: FP006 xfail mark has wrong format.
It should has `until` argument
在你忘记指定until
参数的情况下
tests/test_unit/test_utils.py:128:1: FP007 xfail mark has wrong format.
It should has `until` argument with datetime.date type
在你指定了错误格式的情况下
tests/test_unit/test_utils.py:128:1: FP008 stale xfail mark
在你有太旧的xfail
标记的情况下
-
验证测试函数使用唯一名称
-
验证测试函数对那些未直接在测试体中引用的固定项使用
pytest.mark.usefixtures
例如,检查此函数
# file: test_something.py
def test_something(fixture_one, fixture_two):
assert fixture_two.some_attribute is not None
将引发
tests/test_unit/test_something.py:2:0: FP010 test_something should use fixtures
as follows: @pytest.mark.usefixtures('fixture_one')
安装
pip install flake8-fine-pytest
示例
示例文件
# test.py
@pytest.mark.xfail(reason='')
def test_xfail() -> None:
pass
@pytest.mark.xfail
def test_xfail() -> None:
pass
用法
$ flake8 test.py
test.py:1:1: FP001 xfailed test with empty reason
test.py:5:1: FP002 xfailed test without reason
贡献
我们非常希望您为我们的项目做出贡献。这很简单
- 创建一个带有您发现的错误或建议的问题。等待维护者的批准。
- 创建一个拉取请求。确保所有检查都是绿色的。
- 如果有任何审查评论,请修复。
- 做得好。
以下是一些有用的提示
- 您可以使用
make check
运行所有检查和测试。请在CI之前这样做。 - 我们使用BestDoctor python风格指南。
- 我们尊重Django CoC。温柔,不要胡说八道。
项目详情
下载文件
下载适用于您平台文件的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
flake8_fine_pytest-1.0.3.tar.gz (11.1 kB 查看哈希值)
构建分发
关闭
flake8_fine_pytest-1.0.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 散列值:d3ae2696b8872848b4a4abca03e0af1da7cb0eaa835c3df6ef80b03dc1cfe479 |
|
MD5 | 散列值:e4487f037ac302026fd7238823e4351d |
|
BLAKE2b-256 | 散列值:6321d5856863bd9e6f7b518f0f9e69934daee54acfd4455a417350ae2ee118bc |
关闭
flake8_fine_pytest-1.0.3-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 散列值:bca248612a4876a74d5bc6ebc935ef2d21abf2029e5067286161cac2c79275c7 |
|
MD5 | 散列值:8c5cde31dff23fec2a297506e5e6442b |
|
BLAKE2b-256 | 散列值:c46f0e0ed821de459ca4678d8bf472bdf2f3efdd42259e0585174fe2335937e3 |