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

时间:2017-11-30 08:45:43

标签: php symfony phpstorm symfony3.x symfony-3.4

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

我决定只将phpunit.phar下载到bin并改为使用它。

Symfony 3.4(和Symfony 4)甚至没有phpunit.xml.dist开箱即用,因此轻松使用phpunit.phar会出现问题。

我已经使用flex安装了PHPUnit:

composer req phpunit

创建了phpunit.xml.dist,我可以通过命令行运行测试:

php bin/phpunit

但我又无法让PhpStorm使用它。

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

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

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

5 个答案:

答案 0 :(得分:48)

我通常做的是将PHPStorm上的phpunit测试框架指向由网桥创建的秘密.phpunit目录,如: enter image description here

" phar"文件是:

bin/.phpunit/phpunit-(major).(minor)/phpunit

或在某些情况下:

vendor/bin/.phpunit/phpunit-(major).(minor)/phpunit

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

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

<phpunit bootstrap="vendor/autoload.php">

然后应在&#34;默认配置文件&#34;中指定此phpunit.xml。选项,你应该很高兴。

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

答案 1 :(得分:11)

我使用以下配置成功运行symfony / phpunit-bridge:

  • PhpStorm 2018.2.5
  • Symfony 4.1.x
  • 在docker上运行的PHP 7.1
  • “ symfony /测试包”:“ ^ 1.0”

步骤:

composer require --dev symfony/test-pack之后,我在目录/vendor/bin文件simple-phpunit中具有应该运行symfony/phpunit-bridge的文件。

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

  • 选择“ 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 settings

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

单击“应用/确定”,现在您可以从PhpStorm界面运行测试

答案 2 :(得分:1)

除了给出的答案外,值得一提的是,秘密的.phpunit目录不会突然出现。

composer req phpunit之后,必须首先运行phpunit脚本,例如:

bin/phpunit

它将下载PHPUnit的本地副本并将其放置在同一文件夹中,因此phar可执行文件的路径为:

bin/.phpunit/phpunit-6.5/phpunit

答案 3 :(得分:0)

接受的答案对我使用 PHPStorm 2020.1 和 Symfony 5.2 不起作用

我发现如果我为“phpunit.phar 的路径”应用空白值,它会起作用,尽管首选项对话框抱怨“!phpunit.phar 的路径为空”。

所以在 Preferences > Languages & Frameworks > PHP > Test Frameworks 中:

enter image description here

答案 4 :(得分:-1)

这很简单,与Symfony的版本无关,因为测试的概念仍然稳定。首先,您需要在PHPstorm首选项(screenshot)上配置测试框架,在您的情况下,您可以使用Vendored PHPUnit或手动下载,您可以加入PHPUnit library部分。然后,您需要添加Run/Debug configuration。 我看到"phpunit/phpunit""symfony/phpunit-bridge"已安装,这就是全部。