Pytest的默认发现规则将从所有Test不带的Class导入__init__()。我遇到这种情况,导致导入了错误的类。
我正在测试使用Factory Boy的django项目。http://factoryboy.readthedocs.org/en/latest/构建一个名为的Django模型Testimonial。
像这样:
class TestimonialFactory(factory.Factory):
class Meta:
model = models.Testimonial
Run Code Online (Sandbox Code Playgroud)
这个问题是factory.Factory没有__init__()。因此,py.test看到了Testimonials并尝试运行。依次尝试在pytest发现阶段将记录插入数据库(随之而来的是热闹和失败)。
我通过更改pytest.ini来寻找一种以Check而不是Test开头的Test类来解决问题:
[pytest]
python_classes=Check
Run Code Online (Sandbox Code Playgroud)
这不是我真正想要的。有什么方法可以明确告诉py.test忽略特定名称的测试?