Изменить корневой путь / шаблон теста в IntelliJ / PhpStorm - PullRequest
0 голосов
/ 25 июня 2019

В моем PhpStorm / IntelliJ у меня есть папка src и папка test (помечены правильно, как это указано в настройках проекта).

Мои файлы src выглядят так, например:

path: src/Project/Module/Business/Customer/Model.php
namespace: Project\Module\Business\Customer

Уже предоставлено приложением есть следующая структура для испытаний:

path: tests/ProjectTest/Module/Business/Customer/ModelTest.php
namespace: ProjectTest\Module\Business\Customer

Как видите, вместо той же структуры тестируемого пространства имен, к сожалению, пространство имен начинается с "ProjectTest".

Проблема: всякий раз, когда я хочу автоматически создать тест из исходного класса, он использует неправильный путь, подобный следующему:

path: tests/Project/Module/Business/Customer/ModelTest.php
namespace: Project\Module\Business\Customer

и я должен исправить это вручную. Это дополнительное усилие делает «автоматическое создание тестового файла» бесполезным для меня.

Можно ли сказать IntelliJ / PhpStorm, что он должен использовать "ProjectTest" вместо "Project" для тестов?

Как это решить?

Я нашел эту статью https://blog.jetbrains.com/phpstorm/2014/04/psr-0-psr-4-and-sourcetest-root-support-in-phpstorm-8-eap/, но я не могу понять, применимо ли это для моего варианта использования. У меня не было успеха с этим, но, возможно, кто-то может дать мне подсказку.

Ответы [ 2 ]

0 голосов
/ 01 июля 2019

Как это решить? Ну, во-первых, но это может быть субъективно, вы можете использовать то же пространство имен. В моем понимании тесты принадлежат к нему, но я также знаю, что другие делают это по-другому. Я так не думаю, потому что это, вероятно, решит вашу проблему, но по замыслу - тесты являются частью проекта.

Независимо от вопроса о том, как назвать корневое имя в пространстве имен для тестов, я также могу предложить поддержать это пространство имен в файле composer.json для autoload-dev.

Phpstorm имеет поддержку композитора и может считывать корень пространств имен и отображать его в конкретные каталоги, которые в противном случае он не мог бы. Я не могу сказать вам, решает ли это на самом деле вашу проблему, однако это не неправильно, если он определен в ваших проектах Composer файл, и в противном случае проверьте корневые пути PSR вашей IDE, чтобы настроить сопоставление пространства имен с каталогами должным образом.


0 голосов
/ 25 июня 2019

Насколько я знаю, это пока невозможно (по крайней мере, для PHPUnit и PHPSpec):

Смотрите эти билеты (звезда / голосование / комментарий), чтобы получать уведомления о любом прогрессе:

Также проверьте связанные билеты.

...