擅长:python、mysql、java
<p>一种方法是对所有测试方法使用fixture名称<code>house</code>(即使它正在测试<code>TreeHouse</code>),并且<a href="https://docs.pytest.org/en/latest/fixture.html#overriding-fixtures-on-various-levels" rel="nofollow noreferrer">override its value in each test context</a>:</p>
<pre><code>class TestTreeHouse(TestHouse):
@pytest.fixture
def house(self, tree_house):
return tree_house
def test_groundedness(self, house):
assert not house.is_on_the_ground()
</code></pre>
<p>还要注意<code>TestTreeHouse</code>继承自<code>TestHouse</code>。由于<a href="https://docs.pytest.org/en/latest/goodpractices.html#conventions-for-python-test-discovery" rel="nofollow noreferrer">pytest merely enumerates methods of classes</a>(即,没有“注册”完成,例如,<code>@pytest.test()</code>装饰器),所有在{<cd4>}中定义的测试都将在其子类中被发现,而无需任何进一步的干预。在</p>