【问题标题】:How to stop running tests if a specific test fails?如果特定测试失败,如何停止运行测试?
【发布时间】:2013-10-30 23:39:18
【问题描述】:

我知道 PHPUnit 中有一个 stop-on-failure 选项,但我不希望它在 any 测试失败时停止,就在这个特定测试失败时。

例如,在我的setUp 中,我连接到一个数据库,并在第一个测试中检查它是否连接到正确的数据库。如果失败,我将无法运行其余的测试。

【问题讨论】:

    标签: phpunit


    【解决方案1】:

    使用 PHP 的@depends 功能。

    如果一个测试依赖于另一个,只有在另一个测试成功时才会执行。否则会被跳过。这可以让您更好地查明问题。

    用法:在测试函数顶部添加一个PHPDOC块,该块只应在其他测试成功时执行,并添加一行@depends testConnectToDb

    有关更多详细信息,请参阅 http://phpunit.de/manual/current/en/appendixes.annotations.html#appendixes.annotations.dependshttp://phpunit.de/manual/current/en/writing-tests-for-phpunit.html#writing-tests-for-phpunit.test-dependencies

    【讨论】:

    • 很好,但是我需要将其中一个添加到除第一个方法之外的每个方法中吗?这是唯一的方法吗?
    • 您还可以使用 PHPUnit 中的assertPreCondition(和assertPostCondition)函数在测试函数之前(或之后)运行断言。如果连接失败,您还可以在setUp 中将测试标记为已跳过,因此您无需通过测试进行检查(我建议在每个跳过的情况下添加解释测试,以明确为什么要跳过测试)。跨度>
    猜你喜欢
    • 2021-09-17
    • 1970-01-01
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多