/laravel-postmangen

Generation of Postman collection JSON file based on performed HTTP requests during execution of PHPUnit runner

Primary LanguagePHPMIT LicenseMIT

Laravel Postmangen Package

Laravel Postmangen Package - Laravel пакет генерации Postman коллекции запросов в формате JSON файла на основе запросов, выполняемых во время PHPUnit тестов.

Установка

Вы можете установить пакет через composer:

composer require movemoveapp/laravel-postmangen

Публикация конфигурационного файла. Выполните artisan команду

php artisan vendor:publish --provider="MoveMoveIo\Postmangen\PostmangenServiceProvider"

Настройка проекта осществляется через файлы .env и phpunit.xml вашего проекта. Необходимо указать POSTMANGEN_TMP - путь для генерации промежуточных файлов относительно корня проекта:

POSTMANGEN_TMP=postman/

A также добавить секцию <extensions> в phpunit.xml:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd" bootstrap="vendor/autoload.php" colors="true">
  ...
  <extensions>
    <bootstrap class="MoveMoveIo\Postmangen\PostmangenPhpunitExtension">
        <parameter name="outputDir" value="postman/"/>
    </bootstrap>
  </extensions>
  ...
</phpunit>

И, наконец, необходимо добавить PostmangenMiddleware класс самым первым в список middleware (app/Http/Kernel.php):

<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
    protected $middleware = [
        \MoveMoveIo\Postmangen\Phpunit\Phpunit\Phpunit\Phpunit\Middleware\PostmangenMiddleware::class,
        // ...
    ];
    // ...
}

Теперь после каждого запуска тестов PHPUnit с использованием phpunit.xml в указанной директории будет генерироваться JSON файл <APP_NAME>.postman_collection.json.