gpt4 book ai didi

php - 在 PHPUnit 中如何强制 tearDownAfterClass() 在意外异常的情况下运行

转载 作者:可可西里 更新时间:2023-11-01 12:16:52 25 4
gpt4 key购买 nike

因此,每次我在 PHPUnit 中遇到意外异常(例如由于完整性检查而无法插入数据库)时,我的测试都会失败,并且它会在不运行 tearDownAfterClass() 函数的情况下出错。这将使我的数据库处于困惑状态,因此我必须手动清理它。有没有办法确保始终执行 tearDownAfterClass()

最佳答案

PHPUnit 将调用 tearDownAfterClass,即使在测试方法中存在错误和失败时也是如此。当 setUpBeforeClass 抛出异常时,它不会调用它。为了确保您的数据库得到清理,将清理代码移动到您从 tearDownAfterClasssetUpBeforeClass 中的 catch 子句调用的新方法中。

function FooTest extends PHPUnit_Framework_TestCase
{
static function setUpBeforeClass() {
try {
... setup code that might fail ...
}
catch (Exception $e) {
self::cleanupDatabase();
throw $e; // so the tests will be skipped
}
}

static function tearDownAfterClass() {
self::cleanupDatabase();
}

static function cleanupDatabase() {
... clean ...
}

... test methods ...
}

关于php - 在 PHPUnit 中如何强制 tearDownAfterClass() 在意外异常的情况下运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12241667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com