如何在 PhpStorm 的 tests/ 目录中生成测试?

How to generate Tests in tests/ directory in PhpStorm?

PhpStorm 有一些奇怪的行为让我抓狂。我的项目设置有一个 source 和一个 test 目录。 source 目录应该用于生产代码,而 test 目录应该包含所有的 phpunit 测试。

在这些目录中,文件夹结构是镜像的——如果我有 class \foo\Bar, 然后有 src/foo/Bar.phptest/foo/BarTest.php

我在 PhpStorm 中将 src/test/ 标记为源目录和测试目录,但是,每次我想为 class 创建一个新的测试套件时,PhpStorm 默认将测试 class 放入被测 class 旁边的 src/ 目录。

可以更改它,但是当 test/ 中的相同目录尚不存在时,它会变得更烦人。 PhpStorm 不会创建它,而是会拒绝为我创建该测试套件。

也许我对 PhpStorm 中测试管理背后的概念有很多误解 - 因为它不可能是那么糟糕的用户体验。

我做错了什么,或者我可以配置什么来减轻这种情况的痛苦吗?

没有做错。它只是不能以这种方式工作——开发人员将其编码为以现在的方式运行。

最初 IDE 使用 PHPUnit 生成测试的能力 类 (当时这种功能是实际 PHPUnit 的一部分)。然后 PHPUnit 创建者已将此功能移动到单独的包中 (phpunit-skelgen) .. 并且您必须安装它 manually/separately。然后开发人员决定 drop phpunit-skelgen support completely 并实施当前实施(这也更符合其他 IDE 中的类似例程,这些 IDE 建立在那些 IDEA platform/technologies 支持的 IDE 上=]s).

很少有关于将此类行为更改为与您相同的票证 described/desired ..但到目前为止,它看起来并不在他们的优先列表中...

订阅这些工单 (star/vote/comment) 以获得进度通知。

从 2016.3 版开始,PHPStorm 现在在指定的测试目录中进行测试,准确提供您在问题中要求的内容。