- PyTest Repeat是一个很酷的插件,允许你重复测试,但是目前在Python 3.14中存在问题。欢迎来到Test & Code。在我们开始之前,我想提到我已经对courses.pythontest.com上的PyTest培训课程进行了更改。如果你想了解更多,请收听节目的结尾部分。无论你今天是否需要开始使用PyTest,或者想提升你的PyTest技能,我都为你准备了一门课程。
PyTestRepeat是一个有趣的插件,允许你重复测试。你可以通过几种方式重复测试。你可以传递一个名为count的命令行参数。例如,--count=10将重复你的测试10次。或者你可以,这将重复你在命令行上给出的所有测试。
或者你可以选择单个测试并添加一个repeat标记。例如,你可以说PyTest mark repeat并给出你想要测试重复的次数(如果只有一个测试)。
现在,如果你想对整个文件进行操作,例如,默认情况下,它会一次重复每个测试。所以,假设你重复三次,它会测试第一个测试三次,然后继续下一个测试。如果这并非你想要的结果,如果你想遍历整个会话然后重新开始,你可以赋予它一个session scope。所以你可以传递一个repeat scope。所以你有count和repeat scope。假设我只想一遍又一遍地运行我的整个测试套件,直到它失败。
你可以给它一个count值为1000,repeat scope值为session,以及-X标志(stop on fail)。它会一直运行并尝试运行1000次,但在出现故障时立即停止。非常有用,调试起来也挺有趣。但是,我想尝试一下。它似乎已经在312版本上进行了测试。我想在Python 3.13和Python 3.14上都尝试一下。
今天只是为了确保一切正常。没有理由它不应该工作,因为如果我查看代码,PyTestRepeat的源代码只是使用了相当标准的
PyTest的东西。它使用PyTest generate tests来生成重复的数字。这是一种很酷的方法。无论如何,所以我继续在Python 3.13上尝试了它。没有问题。然后是Python 3.14,它没有工作。我实际上无法弄清楚原因。我以为可能是我的设置出了问题。所以我修改了tox,只是克隆了仓库,修改了tox并在那里添加了3.14。
并用tox尝试了它,但这仍然失败了,我无法弄清楚原因。所以出于某种原因,在Python 3.14中,你无法重复测试。我会继续调查。没有理由这不应该工作,但我无法让Python 3.14重复。现在就到这里。现在去测试一些东西吧。但是只测试一次。你不能重复它。
感谢所有通过Patreon或通过courses.pythontest.com上的课程学习PyTest来支持节目的所有人。我最近做了一个我很兴奋的改变。《完整的PyTest课程》现在是《完整的PyTest课程套装》。它曾经是一个大型课程,现在分为三个课程。
因为你在PyTest学习的不同阶段确实需要它们。第一部分,《PyTest核心力量》,提供了一个循序渐进的介绍,涵盖了PyTest的强大功能,包括fixture、参数化、标记等等。掌握核心力量并开始工作。第二部分,《使用PyTest进行项目开发》,包含了诸如调试、模拟、持续集成等战略性主题。第二部分非常适合你在将PyTest应用于工作或开源项目时使用。第二部分
第三部分:《PyTest助推火箭》,探索插件,包括第三方插件和构建你自己的插件,
以及高级参数化。虽然第三部分可以在完成前两部分后立即学习,但最好先实际使用pytest一段时间,然后再探索你可以用它做更多的事情。我还为每个课程的开头添加了新的介绍视频,结尾处添加了祝贺视频,以及可打印的证书。无论如何,我认为新的结构更有意义。这些课程都在courses.pythontest.com上。今天就到这里。感谢收听。现在去测试一些东西吧。