В настоящее время я начал изучать модульное тестирование в 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 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
php artisan make:test Web/StatementPolicies/StatementPolicyListTest
По умолчанию он создает файл, а именно StatementPolicyListTest, в папке StatementPolicies (если она не существует, создается новая папка с таким именем) в папке tests / Feature / Web.
Работает с Laravel 6.x
Вы пробуете это?