PHPUnit使用命令行,但不使用Eclipse

时间:2018-07-03 05:10:13

标签: eclipse phpunit phpunit-testing

每当我从eclipse运行测试文件时,它都会起作用,并将结果显示为:

.                                                                1/1 (100%)

Time: 371 ms, Memory: 8.00MB

OK (1 test, 1 assertion)

但是,如果我从Eclipse Oxygen运行相同的测试,则会收到错误消息:

PHP Fatal error:  Declaration of PHPUnitLogger::addFailure(Test $test, AssertionFailedError $e, $time): void must be compatible with PHPUnit\Framework\TestListener::addFailure(PHPUnit\Framework\Test $test, PHPUnit\Framework\AssertionFailedError $e, float $time): void in /tmp/phpunit_printer/PHPUnitLogger.php(415) : eval()'d code on line 1

我下载了phpunit-7.1.phar,并通过将其可执行并移动到/ usr / local / bin进行了全局安装,对于Eclipse,我在Download目录中下载了该文件,但没有使其可执行,因此将其添加到了我的目录中。 Eclipse Project作为外部Phar,但无法正常工作,并出现上述错误。

有人可以帮我解决问题吗?

顺便说一句,我是NetBeanse用户,但是NetBeans不支持PHP7.1,这就是为什么要迁移到Eclipse的原因。

更新

这是我的测试文件:

<?php
namespace tests\Unit\;

use PHPUnit\Framework\TestCase;

class MyTest extends TestCase
{
    public function testSimple() {
        $this->assertEquals(1, 1);
    }
}

1 个答案:

答案 0 :(得分:0)

我在PHPUnit 7.5.14中遇到了完全相同的问题,但没有找到解决方案。

由于我想测试在PHP 7.1上运行的应用程序,因此我决定尝试使用PHPUnit 6,并且它可以立即工作。因此,PHPUnit 6.5.14帮了我大忙。

看来Eclipse与PHPUnit 7不兼容。我的Eclipse版本为2018-12(4.10.0),带有PDT 6.2。切换到PHPUnit 6之后,其他问题(我设法找到了解决方法)也消失了。例如,生成的类代码将覆盖TestCase :: __ construct而不调用父构造函数。 PHPUnit 7似乎有问题,而6不是。

我没有找到Eclipse PDT的兼容性图表来支持我的论文。