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.phar到bin,并用它来代替.
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接口运行(和调试)特定测试的可能性.
gre*_*ort 16
我设法使用此配置成功运行symfony/phpunit-bridge:
之后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界面运行测试
| 归档时间: |
|
| 查看次数: |
6606 次 |
| 最近记录: |