作者:KNN | 来源:互联网 | 2023-01-06 19:13
在使用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)的最佳实践是什么?
1> 小智..:
我通常做的是将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.xml
应该然后在"默认配置文件"选项来指定,你应该是好去.
关于phpstorm使用phpunit-bridge:它可以作为自定义脚本,但你不会有漂亮的界面和通过PHPStorm接口运行(和调试)特定测试的可能性.
实际上我发现这个秘密文件夹是在你第一次运行`phpunit-bridge`时创建的.您应该将此添加到您的答案中.
2> grexlort..:
我设法使用此配置成功运行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.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
单击Appply/Ok,现在您可以从PhpStorm界面运行测试