РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1296 of 1392 menu

Команда test

Команда test запускает тесты в Laravel с использованием PHPUnit. По умолчанию выполняется параллельный запуск тестов для повышения производительности. Команда поддерживает множество опций для фильтрации, группировки и настройки окружения тестов. В основе работы лежит PHPUnit с дополнительными интеграционными возможностями для Laravel.

Синтаксис

php artisan test [options] [--] [<test-file>]

Базовые опции команды

Команда test поддерживает следующие основные опции:

--filter Фильтрация тестов по названию --testsuite Запуск конкретного набора тестов --group Запуск тестов из определённой группы --exclude-group Исключение тестов из группы --coverage Включение отчёта о покрытии кода --parallel Запуск тестов параллельно --without-tty Отключение TTY режима

Пример запуска всех тестов

Базовый запуск всех тестов в приложении:

php artisan test

Результат выполнения команды:

Running tests... PASS Tests\Unit\ExampleTest ✓ example PASS Tests\Feature\ExampleTest ✓ example Tests: 2 passed Time: 0.12s

Пример фильтрации тестов

Запуск только тестов, содержащих в названии определённое слово:

php artisan test --filter=user

Результат выполнения команды:

Running tests... PASS Tests\Feature\UserTest ✓ user can register ✓ user can login Tests: 2 passed Time: 0.08s

Пример запуска конкретного тестового файла

Запуск определённого тестового файла по пути:

php artisan test tests/Feature/UserTest.php

Результат выполнения команды:

Running tests... PASS Tests\Feature\UserTest ✓ user can register ✓ user can login ✓ user can logout Tests: 3 passed Time: 0.10s

Пример запуска тестов по группе

Запуск тестов из определённой группы, указанной в атрибуте @group:

<?php namespace Tests\Feature; use Tests\TestCase; class UserTest extends TestCase { /** * @group user */ public function test_user_registration() { $user = User::create([ 'name' => 'John Doe', 'email' => 'john@example.com', ]); $this->assertDatabaseHas('users', [ 'email' => 'john@example.com', ]); } } ?>
php artisan test --group=user

Результат выполнения команды:

Running tests... PASS Tests\Feature\UserTest ✓ user registration Tests: 1 passed Time: 0.06s

Пример параллельного запуска тестов

Запуск тестов параллельно для ускорения выполнения:

php artisan test --parallel

Результат выполнения команды:

Running tests in parallel... PASS Tests\Unit\ExampleTest ✓ example PASS Tests\Feature\UserTest ✓ user registration PASS Tests\Feature\ApiTest ✓ api response Tests: 3 passed Time: 0.05s

Пример запуска тестов с покрытием кода

Запуск тестов с генерацией отчёта о покрытии кода:

php artisan test --coverage

Результат выполнения команды:

Running tests... PASS Tests\Unit\ExampleTest ✓ example Code Coverage Report: Total coverage: 85.5% - App\Models\User: 100.0% - App\Http\Controllers: 80.0% - App\Services: 90.0%

Пример исключения тестов из группы

Запуск всех тестов, кроме тестов из указанной группы:

php artisan test --exclude-group=slow

Результат выполнения команды:

Running tests... PASS Tests\Feature\UserTest ✓ user registration PASS Tests\Unit\ExampleTest ✓ example Skipped tests: 1 (slow group) Tests: 2 passed Time: 0.07s

Пример теста с использованием фабрик

Создание полноценного теста с использованием моделей и фабрик:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\Article; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; class ArticleTest extends TestCase { use RefreshDatabase; public function test_article_creation() { $user = User::factory()->create(); $article = Article::factory()->create([ 'user_id' => $user->id, 'title' => 'Test Article', 'content' => 'This is test content', ]); $this->assertDatabaseHas('articles', [ 'title' => 'Test Article', ]); $this->assertTrue($article->user->is($user)); } } ?>
php artisan test tests/Feature/ArticleTest.php

Результат выполнения команды:

Running tests... PASS Tests\Feature\ArticleTest ✓ article creation Tests: 1 passed Time: 0.15s

Смотрите также

  • команда make-test,
    которая создаёт новый тестовый класс
  • команда tinker,
    которая запускает интерактивную оболочку для тестирования кода
  • команда make-factory,
    которая создаёт фабрику для генерации тестовых данных
  • команда make-seeder,
    которая создаёт сидер для заполнения базы данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить