Laravel 7 – 11
Low commit activity in last 18 months
A long-lived project that still receives updates
Laravel Test Support
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

baijunyao/php-cs-fixer-config
^0.3

Runtime

^7.0|^8.0|^9.0|^10.0|^11.0
^7.0|^8.0|^9.0|^10.0|^11.0
^7.0|^8.0|^9.0|^10.0|^11.0
nesbot/carbon
^3.3
phpunit/phpunit
^8.0|^9.0|^10.0|^11.0
vlucas/phpdotenv
^5.3
 Project Readme

Laravel Test Support

Laravel Test Support is an extension package developed for the Laravel project to help simplify writing PHPUnit or Pest tests

Installation

Require this package with composer using the following command:

composer require baijunyao/laravel-test-support

Usage

Modify the tests/TestCase.php file

<?php

namespace Tests;

- use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
+ use Baijunyao\LaravelTestSupport\TestCase as BaseTestCase;

abstract class TestCase extends BaseTestCase
{
}

After each test, the base test case truncates every table written by that test. If a matching table seeder exists, it then runs the seeder to restore the table's baseline data. Foreign key constraints are temporarily disabled during cleanup.

Modify the phpunit.xml file

<?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="Baijunyao\LaravelTestSupport\Extensions\CreateRandomDatabaseExtension"/>
+   </extensions>
    <testsuites>
        <testsuite name="Unit">
            <directory>tests/Unit</directory>
        </testsuite>
        <testsuite name="Feature">
            <directory>tests/Feature</directory>
        </testsuite>
    </testsuites>
    <source>
        <include>
            <directory>app</directory>
        </include>
    </source>
    <php>
        <env name="APP_ENV" value="testing"/>
        <env name="BCRYPT_ROUNDS" value="4"/>
        <env name="CACHE_DRIVER" value="array"/>
        <!-- <env name="DB_CONNECTION" value="sqlite"/> -->
        <!-- <env name="DB_DATABASE" value=":memory:"/> -->
+       <env name="DB_HOST" value="127.0.0.1"/>
        <env name="MAIL_MAILER" value="array"/>
        <env name="QUEUE_CONNECTION" value="sync"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="TELESCOPE_ENABLED" value="false"/>
    </php>
</phpunit>

Example