Laravel Sail로 테스트 데이터베이스를 생성하는 방법

소개



프로덕션 및 테스트 데이터베이스가 동일해야 하는 프로젝트에서 작업했습니다.

일부 기능은 MariaDB에서는 작동하지만 SQLite에서는 작동하지 않기 때문일 수 있습니다. 또는 일부 버그가 MySQL에는 나타나지만 PostgreSQL에는 나타나지 않습니다.

대규모 프로젝트에서 작업하는 경우 테스트 데이터베이스가 프로덕션 데이터베이스와 정확히 동일하게 작동하는지 알아야 합니다.
테스트 데이터베이스가 다르기 때문에 버그가 프로덕션에 나타나도록 허용할 수 없습니다.

Note: If the project is small, chances are you are fine using SQLite for testing.



오늘은 Laravel Sail 덕분에 현재 데이터베이스 서버에 테스트 데이터베이스를 설정하는 방법을 안내해 드리겠습니다.

시작하기 전에



이 자습서에서는 PostgreSQL을 데이터베이스로 사용합니다.
그러나 아이디어는 다른 데이터베이스와 동일합니다. 현재 데이터베이스 서버에 별도의 데이터베이스를 만듭니다.

머리말


요구 사항


  • 라라벨 9
  • 라라벨 세일

  • 데이터베이스 설정


    docker-compose.yml 파일에 선언된 데이터베이스 서버를 사용하겠습니다.
    이 경우 PostgreSQL.

    services:
      pgsql:
        image: 'postgres:14'
    


    먼저 PostgreSQL의 CLI를 입력합니다.

    sail psql
    


    Note: If you are using MySQL, you can use sail mysql instead.



    이제 새 데이터베이스를 만듭니다.

    CREATE DATABASE testing;
    


    이 데이터베이스는 애플리케이션이 사용하는 기본 데이터베이스와 분리됩니다.


    PHPUnit 구성



    이제 새 데이터베이스 및 데이터베이스 서버를 사용하도록 phpunit.xml 파일을 수정합니다.
    다음과 유사하게 끝나야 합니다.

    <php>
        <env name="DB_CONNECTION" value="pgsql"/>
        <env name="DB_DATABASE" value="testing"/>
    </php>
    



    테스트 실행



    이제 테스트를 실행하고 작동하는지 확인할 수 있습니다.

    sail test --parallel
    


    다음과 유사해야 합니다.

       PASS  Tests\Unit\ExampleTest
      ✓ example
    
      Tests:  1 passed
      Time:   0.7s
    





    그거였다.
    매력처럼 작동하는 일회성 설정입니다.

    자기 홍보



    이 내용이 유용하다고 생각하셨다면 저를 팔로우하세요. 더 흥미로운 콘텐츠를 게시하겠습니다! 🥰
  • GitHub



  • 결론



    축하합니다. 오늘 Laravel Sail에서 테스트 데이터베이스를 만드는 방법을 배웠습니다.docker-compose.yml 파일을 수정하거나 추가 서비스를 생성할 필요가 없습니다.

    튜토리얼이 유용했는지 댓글로 알려주세요!

    좋은 웹페이지 즐겨찾기