Yii2项目PhpStorm远程Codeception单元测试配置问题
解决PhpStorm 2017.3远程Yii2 Codeception单元测试配置问题
我之前也碰到过一模一样的情况——手动在服务器上跑Codeception测试完全正常,但PhpStorm非要用自带的phpunit.php助手脚本,结果找不到项目vendor里的PHPUnit。针对你的2017.3版本,下面是具体的解决步骤:
1. 重新配置Codeception测试框架
打开PhpStorm设置(File > Settings 或快捷键 Ctrl+Alt+S),导航到 Languages & Frameworks > PHP > Test Frameworks:
- 点击左上角的
+按钮,选择 Codeception。 - 在弹出的配置窗口中,选中你已经设置好的Remote PHP CLI解释器。
- 关键操作:不要勾选"Use Composer autoloader",直接在"Codeception script"字段填写服务器上的Codeception脚本路径:
/var/www/vhosts/mydomain.com/httpdocs/yii2/vendor/bin/codecept - 在"Configuration file"字段填写你的项目Codeception配置文件路径:
/var/www/vhosts/mydomain.com/httpdocs/yii2/codeception.yml - 点击
Apply保存配置。
2. 创建正确的Codeception运行配置
接下来要调整运行/调试配置,确保PhpStorm执行原生的Codeception命令:
- 点击顶部菜单栏的
Run > Edit Configurations,点击+按钮选择 Codeception。 - 在配置界面的基础设置中:
- 选择刚才配置好的Codeception框架实例。
- "Test kind"选择 Directory,然后指定单元测试目录:
/var/www/vhosts/mydomain.com/httpdocs/yii2/tests/unit - 勾选"Use alternative configuration file",并指向你的
codeception.yml文件。
- 切换到Command Line标签页,你会看到生成的命令类似这样:
这个命令直接调用了项目vendor里的Codeception,完全避开了PhpStorm的助手脚本。ssh://user@mydomain.com:22/opt/plesk/php/5.6/bin/php /var/www/vhosts/mydomain.com/httpdocs/yii2/vendor/bin/codecept run unit --config /var/www/vhosts/mydomain.com/httpdocs/yii2/codeception.yml - 保存配置后,运行这个配置就能正常执行单元测试了。
额外排查点
如果还是有问题,可以检查这几点:
- 确认远程PHP解释器的连接正常,PhpStorm能访问到服务器上的项目文件。
- 确保SSH用户对
vendor/bin/codecept和vendor/phpunit目录有执行和读取权限。 - 2017.3版本的界面虽然和新版本略有差异,但核心逻辑不变:让PhpStorm直接调用项目的Codeception脚本,而非依赖自带的PHPUnit助手。
内容的提问来源于stack exchange,提问作者keeg
相关产品推荐
相关产品推荐

