【问题标题】:How to generate Tests in tests/ directory in PhpStorm?如何在 PhpStorm 的 tests/ 目录中生成测试?
【发布时间】:2015-10-25 08:24:27
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 不——没有错。它只是不能以这种方式工作——开发人员将其编码为现在的行为方式。有关于将此类行为更改为与您描述/期望的相同的票。但到目前为止,它看起来不像在他们的优先级列表中......
  • 我在测试目录中点击生成测试然后我选择类和适当的命名空间。

标签: php phpunit phpstorm


【解决方案1】:

你没有做错什么。它只是不能以这种方式工作——开发人员对其进行了编码,使其以现在的方式运行。

最初 IDE 使用 PHPUnit 生成测试类的能力(当时这种功能是实际 PHPUnit 的一部分)。然后 PHPUnit 创建者已将此功能移动到单独的包中 (phpunit-skelgen) .. 您必须手动/单独安装它。然后,开发人员决定drop phpunit-skelgen support completely 并实现了当前的实现(这也更符合基于这些 IDE 支持的 IDEA 平台/技术构建的其他 IDE 中的类似例程)。

很少有关于将此类行为更改为您描述/期望的行为的票......但到目前为止,它看起来并不在他们的优先级列表中......

订阅这些票(星/投票/评论)以获得进度通知。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 您知道此功能是否已恢复?我已经用 2017.2 尝试过这个,我得到了和 OP 一样的结果。
    • 对我来说也一样,但是当您更改命名空间以在“创建新测试...”弹出窗口中反映您的测试目录时,它会更改目录以更正一个。 IIRC 它在 2017 年初版本中工作,但在升级后停止。
    猜你喜欢
    • 2019-09-01
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    相关资源
    最近更新 更多