【问题标题】:Why PhpStorm doesn't know PHPUnit_Framework_TestCase为什么 PhpStorm 不知道 PHPUnit_Framework_TestCase
【发布时间】:2018-01-03 22:45:33
【问题描述】:

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

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

  2. PhpStorm Settings >> Languages & Frameworks >> PHP >> Test Frameworks 中,我已链接到 .phar 可执行文件并将默认配置文件设置为项目中的 phpunit.xml根目录

  1. 这里是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{}

未定义类 PHPUnit_Framework_TestCase

更新 1

我通过将保存 .phar 的目录添加到 PhpStorm 包含路径中解决了第二个问题,该路径在 设置 >> 语言和框架 >> PHP >> 包含路径选项卡中设置。或者,我可以将.phar 文件放在项目目录中,它会被索引。

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

更新 2

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

下次创建测试时,它会自动放在那个目录中。

【问题讨论】:

  • 如果您投反对票,请留下反馈,说明原因,以便我了解您认为这是一个糟糕问题的原因。

标签: php unit-testing phpunit phpstorm


【解决方案1】:

将包含源类的目录标记为“Source root”,将包含测试的目录标记为“Test Sources Root”。之后,将在创建测试时预先填充目录(例如,通过源类上的 ctrl+shift+T)。
不确定这是否适用于您的“镜像”系统:我想您仍然需要为部分测试手动调整目录

【讨论】:

  • 谢谢。我正在查找如何在 PhpStorm 中将文件夹声明为“Test Sources Root”。当我右键单击tests/ 目录时,我在“Mark Directory As”下看到的选项是 Resource Root、Excluded 和 Sources Root。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-11
  • 2020-02-15
  • 2018-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多