每当我从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);
}
}
答案 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的兼容性图表来支持我的论文。