获取有关 PHPUnit 测试失败的更多上下文

Getting More Context Around PHPUnit Test Failures

在 PHPUnit 中,假设我这样做:

$this->assertTrue( $some_variable == "foo" );

当我 运行 我的代码测试处于失败状态时,PHPUnit 告诉我:Failed asserting that false is true. 这一切都很好,而且我通常可以找到测试失败的原因。但是...

我想知道是否有办法让 PHPUnit 在测试失败时向我显示更多上下文。例如,PHPUnit 是否可以输出类似:Failed asserting that false is true. When your test ran $some_variable was equal to "bar" 的内容。这将使我能够更快地找出测试失败的原因。

如果我能在 CLI 中看到这个额外的上下文,我会很高兴。是否有我可以应用于 PHPUnit 的设置来实现这一点?

使用assertTrue

assertTrue 方法有第二个参数,您可以在其中指定当断言为否定时断言应抛出的消息:

$this->assertTrue($someVariable == "foo", '$someVariable should have been "foo"')

使用专门的断言函数

PHPUnit 提供了无数专门的断言(用于相等性、身份、数组元素等等),它们会产生合理的错误消息。看看 documentation.

$this->assertEquals("foo", $someVariable);