我正在尝试将PhpStorm 2017.2
配置为将PhpUnit 5
用于我的PHP 5.6
项目。
phpunit-5.7.21.phar
文件,并将其放置在我的PHP 5.6安装目录中。.phar
可执行文件,并将默认配置文件设置为项目根目录中的phpunit.xml
。phpunit.xml
的内容:。
<?xml version="1.0" encoding="UTF-8"?>
<phpunit>
<testsuites>
<testsuite name="Test suite">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
我正在尝试在tests/unit
目录中构建测试,在该目录中,我的源文件项目结构将按照in the manual所述进行镜像。例如:// project files:
ClassOne.php
vendor/
ClassTwo.php
Utility.php
// test files
tests/unit/
ClassOneTest.php
vendor/
ClassTwoTest.php
UtilityTest.php
我有两个问题:首先,我不知道如何配置PhpStorm在
tests/unit/
中创建测试,以相对于项目根目录镜像结构。创建测试时,默认情况下,文件与项目文件位于同一目录中。其次,,我不知道如何使PhpStorm为PHPUnit源代码建立索引。即使我已如上所述链接到
phpunit-5.7.21.phar
文件,但在创建测试时IDE仍会提示:namespace vendor;
class UtilityTest extends \PHPUnit_Framework_TestCase{}
更新1
我解决了第二个问题,方法是将保存
.phar
的目录添加到PhpStorm包含路径中,该目录在“设置” >>“语言和框架” >>“PHP” >>“包含路径”选项卡中进行设置。另外,我可以将.phar
文件放在项目目录中,并将其编入索引。我的第一个问题仍然需要帮助。
更新2
感谢Ástþór的回答,我找到了如何使PhpStorm在专用测试目录中镜像项目结构的方法。转到“PhpStorm设置>>目录”,然后选择基本测试目录。单击顶部附近的
Test
,将其标记为“测试源”根下次创建测试时,它将自动放置在该目录中。
最佳答案
将带有源类的目录标记为“源根”,将带有测试的目录标记为“测试源根”。之后,将在测试创建时预先填充目录(例如,通过源类上的ctrl + shift + T)。
不确定是否可以在您的“镜像”系统上正常工作:我想您仍然必须手动调整测试部分的目录
关于php - 为什么PhpStorm不知道PHPUnit_Framework_TestCase,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45363750/