如何配置PhpStorm以使用symfony/phpunit-bridge。步骤:

2022-08-30 11:48:41

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

我决定下载并使用它。phpunit.pharbin

Symfony 3.4(和Symfony 4)甚至没有开箱即用,因此使用容易存在问题。phpunit.xml.distphpunit.phar

我已经使用flex安装了PHPUnit:

composer req phpunit

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

php bin/phpunit

但是我又不能让PhpStorm使用它。

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

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

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


答案 1

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

“phar”文件的位置是:

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

或在某些情况下:

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

在此之后,在执行单元测试时,将正确调用指定的可执行文件,但带有一个选项。这可能会导致自动加载问题(许多“找不到类”错误),因为Composer生成的自动加载程序未在任何地方指定。phpunit--no-configuration

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

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

然后,这应该在“默认配置文件”选项中指定,您应该可以开始。phpunit.xml


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


答案 2

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

  • Php风暴 2018.2.5
  • Symfony 4.1.x
  • 在 Docker 上运行的 PHP 7.1
  • “symfony/test-pack”: “^1.0”

步骤:

在我有dir文件之后,它应该运行得很好。composer require --dev symfony/test-pack/vendor/binsimple-phpunitsymfony/phpunit-bridge

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

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

phpstorm phpunit settings

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

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


推荐