有没有办法让我在出错后继续使用phpunit?例如,我有一个大型测试套件(400多个步骤),我希望如果找不到元素,它不会阻止我的其余脚本继续。

最佳答案

有更好的方法可以做到这一点。您可以只重载一个方法:runtest(),而不是重载每个assert*()方法。它针对每个断言,可以捕获异常:

abstract class AMyTestCase extends PHPUnit_Framework_TestCase
{
    public function runTest()
    {
        try {
            parent::runTest();
        }
        catch ( MyCustomException $Exc ) {
            // will continue tests
        }
        catch ( Exception $Exc ) {
            if ( false === strpos($Exc->getMessage(), 'element not found') ) {
                // rethrow:
                throw $Exc;
            }
            // will also continue
        }
    }
}

07-28 07:55