";测试框架出乎意料地退出”;当测试通过但正常失败时


"Test Framework Quit Unexpectedly" when test PASSES but FAILS gracefully

我试图在PhpStorm中运行一个特殊的PhpUnit测试,它的行为很奇怪。请看下面的课。

<?php
include_once('../ecoi/app/config.inc');
class formDataTest extends PHPUnit_Framework_TestCase {
public function testStateChange() {
$a = formData::calcCoiState(1);
$this - > assertEquals(1, $a);
   }
}

左下角的查看器弹出一个"测试框架意外退出"错误,但右侧直接的控制台输出有一个"OK(1个测试,1个断言)…"消息,我将其解释为成功。这就是它变得奇怪的地方(呃)。

将"assertEquals"参数从"1"修改为"2"将有效地使测试失败,并且左右窗格都按预期运行。可以说,它显然被记录为一次成功的失败。

我有一个"MoneyTest"类,它会优雅地通过和失败(以排除测试"通过"时出现的全面错误)

include_once('selenium/Money.php');
class MoneyTest extends PHPUnit_Framework_TestCase {
// ...
    public function testCanBeNegated()
    {
        // Arrange
        $a = new Money(1);
        // Act
        $b = $a->negate();
        // Assert
        $this->assertEquals(1, $b->getAmount());
    }
    // ...
}

这个问题似乎与它试图引用的类有关。我只是不确定为什么失败会正确注册,但通过只是部分注册。任何建议都会有所帮助,我很乐意提供更多信息。

这似乎是这个测试和phpStorm对当前版本的pHpUnit响应(4.3)的特殊解释的一个潜在问题。