Команда php artisan для создания файла тестов внутри определенной папки

В настоящее время я начал изучать модульное тестирование в Laravel 5.6. По умолчанию в моем проекте laravel есть каталог «tests», внутри которого у меня есть еще 2 каталога, а именно «Features» и «Unit». Каждый из этих каталогов содержит файл ExampleTest.php.

./tests/Features/ExampleTest.php
./tests/Unit/ExampleTest.php

Всякий раз, когда я создаю новый тестовый файл с помощью команды

php artisan make:test BasicTest

Он всегда создает тестовый файл внутри каталога «Features» по умолчанию, тогда как я хочу, чтобы файл создавался в каталоге «tests».

Есть ли команда, с помощью которой я могу указать путь для создания тестового файла. Что-то вроде этого

php artisan make:test BasicTest --path = "tests"

Я уже пробовал указанную выше команду пути, но это недопустимая команда.

Нужно ли мне изменить код в моем файле phpunit.xml?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
4
0
4 329
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Используйте эту команду

php artisan make:test BasicTest --unit

Также вы можете использовать

php artisan make:test --help

чтобы увидеть доступные варианты

Вы должны создать свою собственную команду artiasn

<?php

namespace App\Console;

class TestMakeCommand extends \Illuminate\Foundation\Console\TestMakeCommand
{
    /**
     * The console command name.
     *
     * @var string
     */
    protected $signature = 'make:test-custom {name : The name of the class} {--unit : Create a unit test} {--path= : Create a test in path}';

    /**
     * Get the default namespace for the class.
     *
     * @param  string  $rootNamespace
     * @return string
     */
    protected function getDefaultNamespace($rootNamespace)
    {
        $path = $this->option('path');
        if (!is_null($path)) {
            if ($path) {
                return $rootNamespace. '\\' . $path;
            }         

            return $rootNamespace;
        }

        if ($this->option('unit')) {
            return $rootNamespace.'\Unit';
        }

        return $rootNamespace.'\Feature';
    }
}

Зарегистрируйте его в ядре

<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [
        TestMakeCommand::class
    ];
    ......  
}

Тогда вы можете использовать

php artisan make:test-custom BasicTest --path=

или

php artisan make:test-custom BasicTest --path=Example

Вы пробуете это?

Davit 19.12.2018 10:57
php artisan make:test  Web/StatementPolicies/StatementPolicyListTest

По умолчанию он создает файл, а именно StatementPolicyListTest, в папке StatementPolicies (если она не существует, создается новая папка с таким именем) в папке tests / Feature / Web.

Работает с Laravel 6.x

Lulu 22.06.2020 12:56

Другие вопросы по теме