【发布时间】: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,没有对其进行任何更改。