如何配置PhpStorm使用symfony/phpunit-bridge

my-*_*ick 27 php symfony phpstorm symfony3.x symfony-3.4

在使用Symfony 3.3时,我在配置PhpStorm IDE以使用http://symfony.com/doc/current/components/phpunit_bridge.html时遇到了问题.

我决定只下载phpunit.pharbin,并用它来代替.

Symfony 3.4(和Symfony 4)甚至没有phpunit.xml.dist开箱即用,因此使用起来phpunit.phar很容易.

我使用flex安装了PHPUnit:

composer req phpunit
Run Code Online (Sandbox Code Playgroud)

这创建了phpunit.xml.dist,我能够通过命令行运行测试:

php bin/phpunit
Run Code Online (Sandbox Code Playgroud)

但我再次无法让PhpStorm使用它.

所以我下载了phpunit.phar它,它可以与提供的phpunit.xml.dist一起使用.

问题1: PhpStorm IDE有没有办法使用phpunit-bridge?

问题2: Symfony 4(phpunit-bridge或vanilla phpunit.phar)的最佳实践是什么?

小智 56

我通常做的是将PHPStorm上的phpunit测试框架指向.phpunit由桥创建的秘密目录,如: 在此输入图像描述

"phar"文件的位置是:

bin/.phpunit/phpunit-(major).(minor)/phpunit
Run Code Online (Sandbox Code Playgroud)

或者在某些情况下:

vendor/bin/.phpunit/phpunit-(major).(minor)/phpunit
Run Code Online (Sandbox Code Playgroud)

在此之后,在phpunit执行单元测试时,将使用--no-configuration选项正确调用指定的可执行文件.这可能会导致自动加载问题(很多"未找到类"错误),因为Composer生成的自动加载器未在任何地方指定.

要解决这个问题,你应该phpunit.xml在你的项目中有一个文件(这是常见的做法),你可以在其中指定Composer的自动加载器,如下所示:

<phpunit bootstrap="vendor/autoload.php">
Run Code Online (Sandbox Code Playgroud)

phpunit.xml应该然后在"默认配置文件"选项来指定,你应该是好去.


关于phpstorm使用phpunit-bridge:它可以作为自定义脚本,但你不会有漂亮的界面和通过PHPStorm接口运行(和调试)特定测试的可能性.

  • 实际上我发现这个秘密文件夹是在你第一次运行`phpunit-bridge`时创建的.您应该将此添加到您的答案中. (9认同)
  • 从 Symfony 5.1 开始,您还可以使用以下稳定路径(与版本无关): `vendor/bin/.phpunit/phpunit/bin/simple-phpunit` (2认同)

gre*_*ort 16

我设法使用此配置成功运行symfony/phpunit-bridge:

  • PhpStorm 2018.2.5
  • Symfony 4.1.x
  • PHP 7.1在docker上运行
  • "symfony/test-pack":"^ 1.0"

脚步:

之后composer require --dev symfony/test-pack我在目录/vendor/bin文件simple-phpunit应该运行symfony/phpunit-bridge得很好.

然后在PhpStorm中File | Settings | Languages & Frameworks | PHP | Test Frameworks设置:

  • 收音机选择Path to phpunit.phar选项
  • Path to phpunit.pharsimple-phpunit文件的绝对路径(例如/application/vendor/bin/simple-phpunit)
  • 检查Default configuration file:并设置输入值到您的绝对本地化phpunit.xml.dist(在我的情况下/application/phpunit.xml.dist)

phpstorm phpunit设置

注意:phpunit.xml.dist文件应配置为使用symfony/phpunit-bridge- 检查https://symfony.com/doc/current/components/phpunit_bridge.html

单击Appply/Ok,现在您可以从PhpStorm界面运行测试