【问题标题】:How to stop phpunit after an arbitrary number of failures如何在任意数量的失败后停止 phpunit
【发布时间】:2023-03-07 00:52:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: unit-testing selenium phpunit


    【解决方案1】:

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

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

    相关 PHPUnit 文档部分的链接:

    Example of creating a Test Listener.

    Enabling the test listener in the XML config file.

    【讨论】:

    • 很好的答案,谢谢。我必须采取的全套步骤是: 1) 创建一个侦听失败的侦听器类,方法是从您的测试侦听器链接复制粘贴,然后更改该类,以便通过所需的 addFailure 方法保持静态的失败计数. 2) 更改我的 phpunit.xml 配置文件以指定要使用的侦听器,我指向我在 #1 中定义的类 3) 将 setUp() 函数添加到我想在多次失败后停止运行测试的类。 setUp() 刚刚调用了#1 中的类。这种方法比停止 phpunit 更能预先失败,但足够接近。
    猜你喜欢
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-16
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    相关资源
    最近更新 更多