PHP SimpleTest框架可以配置为快速失败吗?

Don*_*kby 2 php unit-testing simpletest

我是PHP SimpleTest框架的新手,我很惊讶地看到失败的断言不会停止测试方法.换句话说,这会在测试报告中导致两条失败消息:

function testFoo() {
    $this->assertTrue(true, 'first: %s');
    $this->assertTrue(false, 'second: %s');
    $this->assertTrue(false, 'third: %s');
}
Run Code Online (Sandbox Code Playgroud)

我的大部分单元测试经验都是使用JUnitNUnit,并且一旦第一个断言失败,它们都会暂停测试方法.也许我已经习惯了,但似乎额外的失败信息只是噪音.它让我想起旧的C编译器因为缺少分号而会出现50个错误.

我可以将SimpleTest配置为快速失败,还是只需要使用不同的样式?

Bob*_*ger 5

您可以扩展/修改Reporter类,以便在paintFail()之后退出().
(不需要修改单元测试)

要么

assert*函数返回一个布尔值,例如:

 $this->assertTrue(false, 'second: %s') or return;
Run Code Online (Sandbox Code Playgroud)

将结束当前的测试功能.

PS:
如果您使用PHPUnit_TestCase类而不是UnitTestCase,则assert*函数不会返回布尔值.