pytest增量示例代码如何工作以跳过测试(pytest项和调用对象?)

2024-09-28 15:08:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图弄清楚pytest文档中使用increment标记跳过测试的示例代码是如何工作的,可以在“incremental testing-test steps”下找到here。在

我试图理解它是如何工作的,因为我想修改它,使其运行时的行为稍有不同。在

我的最终目标是修改代码,这样如果我有一个包含6个函数的类,例如,如果1失败,执行类似skip函数2和3的操作;如果4个失败,则跳过5和6,但如果1失败,则不执行。在

底部完整的代码来自这个示例,允许您为测试函数或类添加pytest标记@pytest.mark.incremental。如果类中用增量标记标记的函数失败,则将跳过该类中的所有其他函数。在

据我所知conftest.py文件在每次测试函数运行时被调用。我认为pytest_runtest_makereport在测试完成后运行,并且使用'exinfo'可以确定测试是否通过。在

我真的不知道下面的几行是怎么工作的:

  parent = item.parent
  parent._previousfailed = item

什么是item和{}?为什么parent._previousfailed属性被设置为item?在

pytest_runtest_setup检查item.parent是否具有此_previousfailed属性,以及是否失败。在

我不知道传递的item和call参数是什么。我发现下面的reference guide提到了项类型,但并没有真正阐明太多。在

还有为什么要调用pytest_runtest_makereportpytest_runtest_setup函数。它们在pytest框架中是特殊的“关键字”函数名吗?在

^{pr2}$

Tags: 函数代码文档标记示例属性pytestsetup