Symfony 4,PHPUnit Bridge和phpunit位置

时间:2018-09-13 07:48:51

标签: symfony phpunit symfony4

如果在Symfony 4 应用程序中安装phpunit/phpunit软件包,则会显示以下消息:

  

不建议将phpunit / phpunit添加为依赖项,以支持Symfony的PHPUnit Bridge。

     
      
  • 相反:      
        
    1. 立即删除:composer remove --dev phpunit/phpunit
    2.   
    3. 使用Symfony的桥接器:composer require --dev phpunit
    4.   
  •   

因此,我安装了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中。

请注意,版本不同。为什么?
以及为什么不使用作曲家及其自动加载器?现在,我们在使用它以及其他工具(如PHPStorm(中断的phpunit调试等))遇到了麻烦。
我知道,我可以将phpunit路径添加到主作曲家自动加载中,但是这种方法似乎很脏。

如何在Symfony 4中以正确的方式使用phpunit,以及所有调试集成等?

1 个答案:

答案 0 :(得分:0)

我已通过在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>