如果您在Symfony 4应用程序中安装了包,您将得到以下消息:
不鼓励将phpunit/phpunit作为依赖项添加到Symfony的PHPUnit桥中。
composer remove --dev phpunit/phpunitcomposer require --dev phpunit
所以,我安装了symfony/phpunit-bridge软件包。
它创建了bin/phpunit文件和vendor/bin/simple-phpunit。
bin/phpunit,它会下载phpunit项目并在bin/.phpunit/phpunit-6.5中安装它的依赖项。vendor/bin/simple-phpunit,它会下载phpunit项目并在vendor/bin/.phpunit/phpunit-5.7中安装它的依赖项。请注意,版本并不相同。为什么?
为什么不使用composer和它的自动加载器?现在,我们遇到了它和其他工具的麻烦,如PHPStorm (中断的phpunit调试等)。
我知道,我可以将phpunit路径添加到主编写器autoload中,但是这个方法看起来很脏。
如何在Symfony 4中正确地使用phpunit,与所有的调试集成等一起使用?
发布于 2018-11-22 13:17:48
我在Symfony的根中添加了phpunit.xml.dist,从而解决了这个问题。
该文件以前存在,但我怀疑当我删除phpunit时,它也删除了这个文件。(我可能错了,但我很确定)
当我将标准phpunit.xml.dist文件添加回根时,它会提示我在其中添加'KERNEL_CLASS‘变量。
当我把它加进去时,它就开始正常工作了。
如果有人需要我的phpunit.xml.dist的全部内容
<?xml version="1.0" encoding="UTF-8"?>
<!--
https://phpunit.de/manual/current/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/6.5/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="vendor/autoload.php"
>
<php>
<ini name="error_reporting" value="-1" />
<server name="KERNEL_CLASS" value="App\Kernel" />
</php>
<testsuites>
<testsuite name="Project Test Suite">
<directory>tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory>src</directory>
</whitelist>
</filter>
<listeners>
<listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener" />
</listeners>
</phpunit>https://stackoverflow.com/questions/52308968
复制相似问题