我正在尝试将PhpStorm 2017.2配置为将PhpUnit 5用于我的PHP 5.6项目。

  • 我已经从the official source下载了phpunit-5.7.21.phar文件,并将其放置在我的PHP 5.6安装目录中。
  • 在PhpStorm设置>>语言和框架>> PHP >>测试框架中,我已链接到.phar可执行文件,并将默认配置文件设置为项目根目录中的phpunit.xml

    php - 为什么PhpStorm不知道PHPUnit_Framework_TestCase-LMLPHP
  • 以下是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,将其标记为“测试源”根
    php - 为什么PhpStorm不知道PHPUnit_Framework_TestCase-LMLPHP
    下次创建测试时,它将自动放置在该目录中。

    最佳答案

    将带有源类的目录标记为“源根”,将带有测试的目录标记为“测试源根”。之后,将在测试创建时预先填充目录(例如,通过源类上的ctrl + shift + T)。
    不确定是否可以在您的“镜像”系统上正常工作:我想您仍然必须手动调整测试部分的目录

    关于php - 为什么PhpStorm不知道PHPUnit_Framework_TestCase,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45363750/

    10-13 07:09