为什么PhpStorm不知道PHPUnit_Framework_TestCase

时间:2017-07-28 02:07:57

标签: php unit-testing phpunit phpstorm

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

  1. 我从the official source下载了phpunit-5.7.21.phar文件并将其放在我的PHP 5.6安装目录中。

  2. PhpStorm设置>>语言与框架>> PHP>>测试框架,我已链接到.phar可执行文件,并将默认配置文件设置为项目根目录中的phpunit.xml

  3. enter image description here

    1. 以下是phpunit.xml
    2. 的内容

      <?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{}
      
        

      未定义的类PHPUnit_Framework_TestCase

      更新1

      我通过将我已保存.phar的目录添加到PhpStorm包含路径,在设置&gt;&gt;中设置,解决了第二个问题。语言与框架&gt;&gt; PHP&gt;&gt;包含路径选项卡。或者,我可以将.phar文件放在项目目录中,然后将其编入索引。

      我的第一个问题仍然需要帮助。

      更新2

      感谢Ástþór的回答,我想出了如何让PhpStorm在专用的测试目录中镜像项目结构。转到 PhpStorm设置&gt;&gt;目录并选择基本测试目录。点击顶部附近的Test将其标记为“测试来源根”

      enter image description here

      下次创建测试时,它将自动放置在该目录中。

1 个答案:

答案 0 :(得分:2)

使用您的源类标记目录为&#34;源根&#34;和一个测试目录为&#34;测试源Root&#34;。之后,目录将在测试创建时预先填充(例如,通过源类上的ctrl + shift + T) 不确定,如果这对你的&#34;镜像&#34; system:我猜你仍然需要手动调整测试部分的目录