gpt4 book ai didi

python - 配置 Pytest 发现以忽略类名

转载 作者:太空狗 更新时间:2023-10-29 21:34:27 24 4
gpt4 key购买 nike

Pytest 的默认发现规则将导入所有以 Test 开头但没有 __init__() 的类。我遇到的情况是这会导致导入不正确的类。

我正在测试一个使用 Factory Boy 的 django 项目。 http://factoryboy.readthedocs.org/en/latest/构建一个名为 Testimonial 的 Django 模型。

像这样:

class TestimonialFactory(factory.Factory):
class Meta:
model = models.Testimonial

这个问题是 factory.Factory 没有 __init__()。所以 py.test 看到 Testimonials 并尝试运行。这反过来又试图在 pytest 发现阶段将记录插入数据库(随之而来的是欢闹和失败)。

我通过更改 pytest.ini 来查找以 Check 而不是 Test 开头的测试类来破解变通方法:

[pytest]
python_classes=Check

这不是我真正想要的。有没有办法明确告诉 py.test 忽略某个名称的测试?

最佳答案

这是我使用的一个简单解决方案,但有一些开销。

class DisablePyTestCollectionMixin(object):
__test__ = False

class TestimonialFactory(DisablePyTestCollectionMixin):
pass

基于:https://github.com/pytest-dev/pytest/issues/1879

关于python - 配置 Pytest 发现以忽略类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24614851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com