3
3

More than 1 year has passed since last update.

Setup : windows server IIS + PHP 8.x + Laravel 8.x + MariaDB 10.x for Unit Testing

Last updated at Posted at 2022-02-04

#Outline

Unit Test , Integration (Feature) Test をonboadingで使用するために、phpの環境を構築した。
unit testができるまでの構築手順である
versionによって微妙にコマンドが異なったり、windowsでそもそもする人が少ないので、該当する方々の参考になればと思います

#PHP

1. install PHP

https://www.php.net/
php windows versionのzipをダウンロードする。
今回、IISでFastCGIModuleで動かすため、Non Thread Safe versionを使う。

その後、任意のフォルダに配置する。
今回は、 C:\phpに置く。
image.png

2. install xdebug

unit testのcoverageを出すために、xdebugを利用する。
このextensionをdownloadし、C:\php\extに配置する。

3. setup php.ini

php.iniを編集し、一部モジュールをactiveにする

extension=fileinfo
extension=mbstring
extension=mysqli
extension=pdo_mysql
extension=openssl

zend_extension = xdebug

#IIS setting

1. Server Role

Server RoleにIISを追加します。
・Role追加にて、"Web Server (IIS)"を指定する
・Role Servicesにて、"Application Development"の必要な項目を追加する。今回CGI (FastCGIModule)としてphpを動かす

image.png
image.png

2. install url-rewrite

Laravelでは、URL-Rewriteを使う。
そのため、そのパッケージをインストールする

3. handler mapping php

*.phpにアクセスしたときに、phpを実行するように指定する

image.png

4. rewrite URL for laravel

以下のルールを追加する

image.png

Category item parameter
Match URL Matches the Pattern ^(.*)$
Conditions {REQUEST_FILENAME} Is Not a File
Conditions {REQUEST_FILENAME} Is Not a Directory
Action Rewrite index.php/{R:1}

#Install mariaDB

1. Install

LaravelのDBのアプリを作成するために、簡単に使えるMariaDBを採用(mysqlでもよい)
インストールは簡単で、MariaDBからインストーラをダウンロードし、デフォルトの設定で作成する

image.png

2. Create Account

MariaDB Clientがstartupに作成されるため、それを起動する
ログインは、rootのパスワードでログインする

image.png

Laravelからアクセスするユーザーの作成と権限付与を行う

使用するsqlコマンド

  • CREATE USER
  • GRANT ALL

3. Create Database

Laravelのサンプルアプリで使う、databaseを作成する。
とりあえず、サンプルアプリ名=データベース名とする

CREATE DATABASE sample_app

#Install Composer

Composerとは、PHPと必要なライブラリの依存関係を管理する標準形式を提供するアプリケーションレベルのパッケージ管理システム
Laravelをinstallするときに使う
インストーラーをdownloadして、基本的にデフォルトでインストールを行えばよい

image.png

#Install Laravel

command promptを起動し、以下コマンドを入力する

composer global require "laravel/installer"

image.png

path setting

system settingで以下pathを設定する

image.png

%APPDATA%\Composer\vendor\bin

#Create Laravel project

1. create laravel project

IISで指定した、アクセス可能なVirtual Directoryに移動する
そこで、command promptを起動する

laravel new sample_app

image.png

完了するまで時間がかかります。
完了すると、Laravelのパッケージが作成されます。

image.png

2. node.js

laravelはnode.jsを使います
それをインストールします。
まず、対象のプロジェクトに移動し、そこでcommand promptで以下のコマンドを実行する。

npm install && npm run dev && npm run watch

image.png

3. resolve dependency

packageの依存問題を解決する

composer install

image.png

4.application encryption key

Laravelを起動させるために、encryption keyを指定する必要がある

php artisan key:generate

5. install phpunit coverage

以下、コマンドを実行する

composer require --dev phpunit/php-code-coverage

image.png

6. test coverage output

test coverageをhtmlで出力できるようにする
すでにXDEBUGを設定しているため、それをつかって実行できるようにする
composer.jsonを編集する

scriptsで以下2つのコマンドを追加する
test:coverage-xml
test:coverage-html

image.png

実際に実行してみる

composer test:coverage-html

image.png

すると、storageにカバレッジレポートが作成される

image.png

htmlをひらくと、以下のようにカバレッジレポートが確認できる

image.png

7. DB setting

対象のprojectが先ほど構築したMariaDBと接続できるようにする

.envで、DBに関する設定を行う
DBのHost,Portが異なる場合、変更する
DB_DATABASEは、先ほどproject名と同じdatabaseを作成したので特に変更は必要ないが、別のdatabaseを使う場合、変更する
DB_USERNAME,DB_PASSWORDは作成したDBのユーザを指定する。
このユーザーはTABLEの作成権限などが必要となる。

image.png

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3