PHPUnit:强制显示断言的值
2022-08-31 00:55:17
当 PHPUnit 中的测试失败时,将显示实际值和预期值。
但当测试通过时,不会显示此信息。
如何强制PHPUnit始终显示预期和实际的断言结果?
当 PHPUnit 中的测试失败时,将显示实际值和预期值。
但当测试通过时,不会显示此信息。
如何强制PHPUnit始终显示预期和实际的断言结果?
运行
phpunit --testdox
将显示每个测试名称。因此,作为一种解决方法,您可以将预期和实际的断言结果合并到测试名称中...仍然只是一个解决方法...
由于您最有可能用$this->断言来称呼断言...(),您可以在测试用例中覆盖这些方法。简单示例:
class YourTestCase extends PHPUnit_Framework_TestCase {
...
static private $messages = array();
...
static public function assertSame($var1, $var2, $message = '') {
parent::assertSame($var1, $var2, $message);
// assertSame() throws an exception if not true, so the following
// won't occur unless the messages actually are the same
$success = print_r($var1, true) . ' is the same as '
. print_r($var2, true);
self::$messages = array_merge(self::$messages, array($success));
}
static public function tearDownAfterClass() {
echo implode("\n", self::$messages);
}
}
当然,tearDownAfterClass() 可能还不够晚,无法满足您的喜好。这与断言失败不同。