【问题标题】:"Test Framework Quit Unexpectedly" when test PASSES but FAILS gracefully测试通过但正常失败时“测试框架意外退出”
【发布时间】:2014-11-28 23:28:17
【问题描述】:

我试图在 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());
    }

    // ...
}

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

【问题讨论】:

  • 1) 请检查您的 php 错误日志以获取可能的详细信息——此类消息通常表示执行期间存在错误(例如,未加载类等)。 2) 您是否使用任何 PHPUnit 自定义项(例如自定义打印机等)?尽量不要使用它们。
  • 我不使用任何自定义。我的 PHPUnit 指向从 PHPUnit 主站点下载的 PHAR,没有对其进行任何更改。

标签: php phpunit phpstorm


【解决方案1】:

这似乎是这个测试和 phpStorm 对当前版本的 pHpUnit 响应 (4.3) 的特定解释的潜在问题。我将我的 phpStorm 实例指向 3.7 phpUnit Phar,它的功能比预期的要好得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-03
    • 2020-03-20
    • 2014-08-25
    • 1970-01-01
    • 2019-11-10
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多