Deploying a new Laravel site on Github, test runner reports: "SQLSTATE[HY000] [2002] No such file or directory"
GitHub TestingWhen pushing a new Laravel repo to GitHub that has tests enabled, you might encounter the following error on the "Execute the tests" section:
SQLSTATE[HY000] [2002] No such file or directory
A full screenshot of what this looks like is this:

This beg a few questions, starting with "what does you .github/workflows/run-tests.yml file look like?"
In this example, the file looks like this:
name: tests
on:
push:
pull_request:
jobs:
tests:
runs-on: ubuntu-22.04
strategy:
fail-fast: true
matrix:
php: ['8.2']
laravel: [10]
name: PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, bcmath
ini-values: error_reporting=E_ALL
tools: composer:v2
coverage: none
- name: Install composer dependencies
run: |
composer require "illuminate/contracts=^${{ matrix.laravel }}" --no-update
composer update --prefer-dist --no-interaction --no-progress
- name: Copy .env.example and generate the application key
run: |
cp .env.example .env
php artisan key:generate
- name: Execute the tests
run: vendor/bin/phpunit
The file is super simple and solely caters for testing a Laravel 10 app on PHP 8.2 and Ubuntu 22.04 as the operating system.
Clearly, there is no MySQL running.
You next instinct might be to deploy MySQL on the test runner. However, this is quite complicated, so what other options exist?
In my opinion it's often the best option to use SQLite as it's much faster and much less overhead on your test runner meaning you have quicker tests returning.