PHPUnit在IDE中工作,但服务器说找不到类

PHPUnit在IDE中工作,但服务器说找不到类,phpunit,phpstorm,Phpunit,Phpstorm,我正在PhpStorm中使用Symfony3插件。我的PHP解释器是7.0.18。我在PhpStorm中配置了PHPUnit 6.3.0,方法是将.phar文件放在项目的根目录中 单元测试在IDE中像一个符咒一样工作,但是在服务器上执行任何操作(如bin/console server:start)都会触发以下消息: PHP致命错误:在中找不到类“PHPUnit\Framework\TestCase” /第13行的1tb/programming/PhpstormProjects/binary_se

我正在PhpStorm中使用Symfony3插件。我的PHP解释器是7.0.18。我在PhpStorm中配置了PHPUnit 6.3.0,方法是将
.phar
文件放在项目的根目录中

单元测试在IDE中像一个符咒一样工作,但是在服务器上执行任何操作(如
bin/console server:start
)都会触发以下消息:

PHP致命错误:在中找不到类“PHPUnit\Framework\TestCase” /第13行的1tb/programming/PhpstormProjects/binary_search/src/AppBundle/search/BinarySearchTest.php
PHP致命错误:在中找不到类“PHPUnit\Framework\TestCase” /1tb/programming/PhpstormProjects/binary_search/vendor/symfony/symfony/src/symfony/Bundle/FrameworkBundle/Tests/TestCase.php 第17行

BinarySearchTest.php:

 <?php

namespace AppBundle\Search;

use PHPUnit\Framework\TestCase;

class BinarySearchTest extends TestCase
{

}
<?php

namespace Symfony\Bundle\FrameworkBundle\Tests;

use PHPUnit\Framework\TestCase as PHPUnitTestCase;

class TestCase extends PHPUnitTestCase
{

}

我已经配置了PHPUnit 6.3.0将.phar文件放在我的项目的根目录中

真是个坏主意

如果这是您尝试测试的本地临时服务器

要全局安装PHAR,请执行以下操作:

$ wget https://phar.phpunit.de/phpunit-6.2.phar
$ chmod +x phpunit-6.2.phar
$ sudo mv phpunit-6.2.phar /usr/local/bin/phpunit
$ phpunit --version

也可以考虑将PHP升级到最新版本。您正在使用的软件中存在多个漏洞。(见:)

编辑:

为什么要在服务器上运行
bin/console服务器:start


我的猜测是,它在您的文档根目录中看到了phar并试图执行它,这就是导致所有错误的原因。

通过composer安装PHPUnit成功。结果我的作曲家安装在某种程度上出错了。成功安装composer后,我让它负责安装PHPUnit。在那之后,它就起作用了。测试在IDE中工作正常,服务器再次响应。感谢LazyOne。

尝试使用composer安装的PHPUnit而不是PHAR版本。。。到目前为止,可能是1)在服务器上(或者在运行
phpunit.
时)没有使用PHAR(很可能),或者2)您没有安装开发依赖项(phpunit通常是开发时间依赖项,因为它在生产服务器上并不真正需要)。似乎已经起作用。我从网站上执行了安装步骤,并将composer放在我的/usr/local/bin目录中,并在“mv/usr/local/bin/composer”中注明我已切断了.phar。现在它是一个可执行文件。我启动了一个新项目,并执行了“init composer”,这次是使用可执行文件,然后立即执行了“管理依赖项”并安装了phpunit/phpunit。成功了。最后,我得到一个错误,说找不到类CacheTest,我通过编辑测试配置来绕过这个错误,只运行带有test的目录,而不是整个项目目录。服务器现在也可以工作了。您好,谢谢您的回复。我决定尝试使用composer安装PHPUnit,它现在运行良好。添加它作为您自己的答案,并接受它来选择此选项。