在使用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)的最佳做法是什么?
答案 0 :(得分:48)
我通常做的是将PHPStorm上的phpunit测试框架指向由网桥创建的秘密.phpunit
目录,如:
" 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:
在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.phar
到simple-phpunit
文件的绝对路径(例如/application/vendor/bin/simple-phpunit
)Default configuration file:
并将输入值设置为phpunit.xml.dist
的绝对本地化(在我的情况下为/application/phpunit.xml.dist
)注意: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 中:
答案 4 :(得分:-1)
这很简单,与Symfony的版本无关,因为测试的概念仍然稳定。首先,您需要在PHPstorm首选项(screenshot)上配置测试框架,在您的情况下,您可以使用Vendored PHPUnit或手动下载,您可以加入PHPUnit library
部分。然后,您需要添加Run/Debug
configuration。
我看到"phpunit/phpunit"
和"symfony/phpunit-bridge"
已安装,这就是全部。