Unit testing 如何在发生任意数量的故障后停止phpunit

Unit testing 如何在发生任意数量的故障后停止phpunit,unit-testing,selenium,phpunit,Unit Testing,Selenium,Phpunit,首先是一些背景知识:我编写了一些selenium测试来访问我们的一些内部网站并检查错误。目前,这些测试发现了相当多的bug,这很好——我希望这些测试每隔6小时左右自动运行一次,并将测试结果通过电子邮件发送给我的团队,作为修复所有这些错误的灵感。然而,我也不希望phpunit每6小时向每个人发送9999999个错误。我希望错误的数量更合理,比如说,一次20个 所以,我的问题是:有没有办法在X失败后停止phpunit?我知道您可以使用--stop on failure在1次失败后停止它,但我希望它在

首先是一些背景知识:我编写了一些selenium测试来访问我们的一些内部网站并检查错误。目前,这些测试发现了相当多的bug,这很好——我希望这些测试每隔6小时左右自动运行一次,并将测试结果通过电子邮件发送给我的团队,作为修复所有这些错误的灵感。然而,我也不希望phpunit每6小时向每个人发送9999999个错误。我希望错误的数量更合理,比如说,一次20个

所以,我的问题是:有没有办法在X失败后停止phpunit?我知道您可以使用--stop on failure在1次失败后停止它,但我希望它在任意次数的失败后停止


我可以想出一种方法来实现这一点,将失败作为异常抛出,然后保留一个统计异常数量的静态变量,等等,但这似乎是不必要的。有人知道更好的方法吗?提前感谢您的帮助。

实现一个PHPUnit测试侦听器,该侦听器将使用静态变量统计检测到的错误和失败的数量

然后,当达到错误阈值时,您的最佳选择可能是在侦听器的startTest方法上抛出一个异常,因此不会执行其他测试,但我没有检查这一点

相关PHPUnit文档部分的链接:


回答得很好,谢谢。我必须采取的全部步骤是:1)创建一个侦听失败的侦听器类,方法是从测试侦听器链接复制粘贴,然后更改该类,以便通过所需的addFailure方法保持失败的静态计数。2) 修改我的phpunit.xml配置文件以指定要使用的侦听器,我将该侦听器指向在#1 3)中定义的类,向我希望在多次失败后停止运行测试的类添加setUp()函数。setUp()刚刚调用了#1中的类。这种方法比停止phpunit更容易失败,但足够接近。