【发布时间】:2013-10-30 23:39:18
【问题描述】:
我知道 PHPUnit 中有一个 stop-on-failure 选项,但我不希望它在 any 测试失败时停止,就在这个特定测试失败时。
例如,在我的setUp 中,我连接到一个数据库,并在第一个测试中检查它是否连接到正确的数据库。如果失败,我将无法运行其余的测试。
【问题讨论】:
标签: phpunit
我知道 PHPUnit 中有一个 stop-on-failure 选项,但我不希望它在 any 测试失败时停止,就在这个特定测试失败时。
例如,在我的setUp 中,我连接到一个数据库,并在第一个测试中检查它是否连接到正确的数据库。如果失败,我将无法运行其余的测试。
【问题讨论】:
标签: phpunit
使用 PHP 的@depends 功能。
如果一个测试依赖于另一个,只有在另一个测试成功时才会执行。否则会被跳过。这可以让您更好地查明问题。
用法:在测试函数顶部添加一个PHPDOC块,该块只应在其他测试成功时执行,并添加一行@depends testConnectToDb。
有关更多详细信息,请参阅 http://phpunit.de/manual/current/en/appendixes.annotations.html#appendixes.annotations.depends 和 http://phpunit.de/manual/current/en/writing-tests-for-phpunit.html#writing-tests-for-phpunit.test-dependencies。
【讨论】:
assertPreCondition(和assertPostCondition)函数在测试函数之前(或之后)运行断言。如果连接失败,您还可以在setUp 中将测试标记为已跳过,因此您无需通过测试进行检查(我建议在每个跳过的情况下添加解释测试,以明确为什么要跳过测试)。跨度>